Linux系统fork函数所产生的文件共享

当我们了解了fork函数之后,知道子进程会拷贝父进程的信息,那如果打开文件进行文件处理和fork在同一函数中会发生什么呢?

我们先创建一个在程序中打开的文件:string

文件内容:

(1)先open后fork

 其运行结果如下图:

可以看到父子进程共打印了string文件中的6个字符,这是因为父进程所有打开的文件描述符(可以查看文件描述符博客)都被复制到子进程中。先打开文件,后fork这使父子进程共享一个文件表项。情况如下:

(2)先fork后open

 其运行结果如下图:

可以看到父子进程分别打印了string文件中的3个字符,并且都是前3个字符。说明,父子进程都是各自打开文件并且互不干扰。情况如下:

猜你喜欢

转载自blog.csdn.net/HDong99/article/details/85042522