考虑代码:
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <unistd.h>
/* main --- do the work */
int main(int argc, char **argv)
{
pid_t child;
if ((child = fork()) < 0) {
fprintf(stderr, "%s: fork of child failed: %s\n",
argv[0], strerror(errno));
exit(1);
} else if (child == 0) {
// do something in child
}
} else {
// do something in parent
}
}
我的问题是子进程在代码中从哪里开始执行,即首先执行哪一行?如果它执行整个代码,它也会创建自己的子进程,事情会继续发生,这肯定不会发生!!!
如果它在 fork() 命令之后开始,它首先如何进入 if 语句?