注册 登录
编程论坛 Linux教室

关于fork()函数

liu4396 发布于 2006-11-15 12:39, 1412 次点击
在fork() 的“返回值“的讨论过程中——父进程fork返回子进程的ID,而对于fork子进程返回0 ,这句话应怎么理解?

fork() 创建的不就是子进程吗? 怎么还会牵扯到 父进程上面


pid_t child;
child=fork();
在讨论child值得过程中,child是多少的问题,应怎么理解 ?
2 回复
#2
Dweng2006-11-20 10:21
这个应该这么理解:
因为父进程要等待子进程运行结束,所以要用到一些系统调用来实现等待的过程(wait(pid_t pid)),
所以对父进程来说需要知道子进程的PID,
而对自进程所返回的只是FORK()成功的标志,没有什么意义。
父子进程牵涉到进程的互斥和并发。
#3
howema2006-12-12 11:56

一个父进程可能创建很多子进程,子进程成功返回给自己0,同时返回给父进程它(子进程)的ID,父进程可以通过wait等系统调用来等待子进程退出,然后做相应的处理,完成父子进程间的通信或同步。

1