FORk 函数的特点是 "调用一次,返回两次":在父进程中调用一次,在父进程和子进程中各返回一次。 在父进程中返回时的返回值为子进程的 pid,而在子进程中返回时的返回值为 0,并且返回后都将执行 fork 函数调用之后的语句。如果 fork 函数调用失败,则返回值为 -1。 我们细想会发现,fork 函数的返回值设计还是很高明的。在子进程中 fork 函数返回 0,那么子进程仍然可以调用 getpid 函数得到自己的 pid,也可以调用 getppid 函数得到父进程 pid。在父进程中用 getpid 函数可以得到自己的 pid,如果想得到子进程的pid,唯一的办法就是把 fork 函数的返回值记录下来。 注意:执行 forkdemo 程序时的输出是会发生变化的,可能先打印父进程的信息,也可能先打印子进程的信息。














发表评论