LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1400|回复: 4

fork()与 wait()的问题

[复制链接]
发表于 2009-7-25 13:28:35 | 显示全部楼层 |阅读模式
刚学到这部分.有些事情无法理解.
用fork()创建了一个子进程,程序就会开始执行子进程,等执行完子进程,父进程就会开始执行的,对不?
那按照书里所说,wait函数的作用是,堵住当前进程,直到子进程执行完.
没有wait时,不是也会等到子进程结束时才继续执行父进程啊.
那要wait到底有何用啊.
发表于 2009-7-25 14:38:16 | 显示全部楼层
Post by dxlong2009;2009480
刚学到这部分.有些事情无法理解.
用fork()创建了一个子进程,程序就会开始执行子进程,等执行完子进程,父进程就会开始执行的,对不?
那按照书里所说,wait函数的作用是,堵住当前进程,直到子进程执行完.
没有wait时,不是也会等到子进程结束时才继续执行父进程啊.
那要wait到底有何用啊.

fork的理解不对,再仔细看看书.  可以结合sleep函数来测试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 14:41:43 | 显示全部楼层
看的是<unix/linux编程实践指南>,fork讲得很少.我再去看看别的书.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-25 15:02:22 | 显示全部楼层
没有wait,子进程跟父进程的输出关系是否跟操作系统有关.

他们是不是同时运行的?fork之后,父进程继续往下执行,而子进程也开始执行它自己了?
回复 支持 反对

使用道具 举报

发表于 2009-7-27 00:48:05 | 显示全部楼层
fork出来的子进程和父进程的执行顺序是未知的,你不能保证子进程现执行的。
看看linux的man fork就知道了,建议你用vfork, 二者的区别还是看man手册吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表