次のコードを検討してください。
#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 ステートメントに入るのですか??