4
在fork()之后,孩子将从哪里开始执行?
我正在尝试学习UNIX编程,并且遇到了有关fork()的问题。我知道fork()创建的进程与当前正在运行的进程相同,但是它从哪里开始?例如,如果我有代码 int main (int argc, char **argv) { int retval; printf ("This is most definitely the parent process\n"); fflush (stdout); retval = fork (); printf ("Which process printed this?\n"); return (EXIT_SUCCESS); } 输出为: 这绝对是父进程, 哪个进程打印了此文件? 哪个过程印出了这个? 我以为会fork()创建一个相同的过程,所以我最初认为在该程序中,该fork()调用将被永久递归调用。我猜是从通话fork()后开始创建的新流程fork()? 如果我添加以下代码,以区分父进程和子进程, if (child_pid = fork ()) printf ("This is the parent, child pid …