c - 子进程出错并等待 `C`

标签 c fork wait

在下面的代码中,如果创建子进程时出现问题或者子进程发生了某些事情,wait(&status) 会发生什么?

pid_t pid;
int status;
if(pid=fork()){
   printf("Parent Process\n");
   wait(&status);
} else... child process here

最佳答案

如果创建子进程时出现问题,fork 将返回-1,因此这段代码永远不会wait

如果子进程有问题,wait会返回,可以观察status

关于c - 子进程出错并等待 `C`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19076924/

相关文章:

c - 在C中递归搜索链表

c - 是否有与 Perl 的 Carp 模块等效的 C 语言?

c - 2路管道通讯。悬挂

Java 等待线程完成

c - 使用 mktime() 查找两个日期之间的差异

c++ - 通过访问函数访问共享内存是否需要 `volatile`?

c++ - wait(NULL) 似乎导致 child 停止执行

c++ - 使用 fork() 的子和父 pid;

java - 如何让单个线程而不是整个程序等待?

c++ - 在 _USE_32BIT_TIME_T 上使用 C++11 的计时