我是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編程有多熟悉? –