fork()系统调用后,对于open()前后父子进程的访问

一开始我也不是很懂,后来看了一篇别人的博客觉得写得特别好,现在拷贝下来分享一下。

 

 如果换成write函数

 

 如果换成write函数,先open()后fork(),那么父子进程共享文件描述符,即使在子进程使用close(fd),父进程依然可以写入文件。

如果先fork后open,那么此时父子进程相当于各自在自己的空间里进行写不在共享,如果子进程先运行写入字符“12”,那么父进程写入的字符“34”将覆盖子进程写的内容。

如下图:

 

结果如下:

原文地址:https://www.cnblogs.com/lhyzdd/p/13823960.html