Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 我想知道fork在以下代码中是如何工作的_Unix_Process_Fork - Fatal编程技术网

Unix 我想知道fork在以下代码中是如何工作的

Unix 我想知道fork在以下代码中是如何工作的,unix,process,fork,Unix,Process,Fork,在下面的代码中,fork后面没有语句。所以我想知道fork的行为 int main() { fork(); printf("some print here"); return 1; } 在这种情况下,子进程和父进程会发生什么情况。除非通过检查fork()的返回码并分别应用不同的逻辑来区分父进程和子进程,否则父进程和子进程都将通过打印行并退出来进行相同的处理。父进程id与主进程id相同?若在我们退出main时是这样的话,那个么父进程也将因为不处理子进程而被终止。print

在下面的代码中,fork后面没有语句。所以我想知道fork的行为

int main()
{
    fork();
    printf("some print here");
    return 1;
}

在这种情况下,子进程和父进程会发生什么情况。

除非通过检查
fork()
的返回码并分别应用不同的逻辑来区分父进程和子进程,否则父进程和子进程都将通过打印行并退出来进行相同的处理。

父进程id与主进程id相同?若在我们退出main时是这样的话,那个么父进程也将因为不处理子进程而被终止。printf中的语句会被打印吗?你把进程和线程混淆了。执行fork将创建一个具有唯一PID的新进程,该PID将独立于父进程而存在。另一方面,线程属于同一个进程,当进程退出时,所有线程都会终止。父进程和子进程仍将被终止或无限期等待。它们都将终止。