|
|
大家先看看一个简短的例程:
- /* 定义加一些初试化工作 */
- fp=open(……);
- pid=fork();
- if(pid==0)
- {
- /*child done*/
- }
- else
- {
- pr=wait(NULL);
- /* parent done*/
- }
- close(fp);
- exit(0);
复制代码
问题在于,我使用了wait,堵塞了父进程,也就是说,子进程已经执行完毕,到达exit。
也意味着执行了close(fp); 由于对于fork()的定义是,建立子进程,共享了一个文件,既然子进程先行,且关闭了文件,那么父进程就应该不能对这个文件进行写了。
好了,问题出现,我执行时 父进程依然可以对文件进行读写。
不解啊,请高手们帮帮我理解,谢谢,不胜感激! |
|