我是C总共的初学者。 我有这样一个程序,可以找到最多可以打开的进程。试图找出我可以打开的最大进程数量是多少
我出来与此代码:
int main() {
while (1){
pid_t pid = fork();
if(pid) {
if (pid == -1){
fprintf(stderr,"Can't fork,error %d\n",errno);
exit(EXIT_FAILURE);
}else{
int status;
alarm(30);
if(waitpid(pid, &status, 0)==pid) {
alarm(0);
// the child process complete within 30 seconds
printf("Waiting.");
}else {
alarm(0);
// the child process does not complete within 30 seconds
printf("killed");
kill(pid, SIGTERM);
}
}
}
else{
alarm(30);
printf("child");
}
}
}
事情是这样的程序导致我的笔记本电脑崩溃..: - |
我认为当程序不能打开更多的进程时,我会从fork()得到-1,然后退出程序。那么,它没有发生。
有什么想法? 我在这里错过了什么?
谢谢!
你是初学者,你写了这个?你对Unix编程有多熟悉? –