【发布时间】:2014-10-20 22:56:45
【问题描述】:
我想知道为什么 waitpid() 存在而 fopen() 返回 -1。
FILE *fp = fopen ("abc.txt", "r");
fclose(fp);
pid_t pid = fork ();
if (pid == 0) { /* child process */
printf ("child %d\n", getpid());
}
else { /* parent process */
pid_t pid2 = waitpid (pid);
printf ("parent %d\n", pid2);
}
pid2 等于上例中的 -1,但如果我消除 fopen(),它将变为与 pid(子进程号)相同的数字。
感谢您的澄清!
【问题讨论】: