本文是这《Linux C/C++多进程同时写一个文件》系列文章的第三篇,上一篇文章演示了两个亲缘关系的进程(父子进程)同时写一个文件的情形,并得出了数据只会错乱但不会覆盖的结论。这篇文章主要是在第一篇文章的基础上,加上上篇文章的分析,更深下一步地探索两个非亲缘关系的进程同时写一个文件的问题。
1 查看要写入的文件的inode信息
使用stat LINUX_MUTIL_PROCESS_WRITE_2命令查看要写入的文件inode信息,可以看到它的值为67728087。
2 示例程序
下面这个linux_process_fork1_7.c程序很简单,主要是把p_buf指向的静态区数据写入到文件LINUX_MUTIL_PROCESS_WRITE中。
为了测试多进程同时写文件的情景,需要复制linux_process_fork1_7.c程序为linux_process_fork1_8.c,同时把p_buf指向改成abcdefghi,然后分别编译成两个不同的可执行文件:linux_process_fork1_7 和 linux_process_fork1_8。
/**
* @FileName linux_process_fork1_7.c
* @Describe Linux C/C++多进程同时写一个文件(三)
* @Author vfhky 2017-10-29 22:23 https://typecodes.com/cseries/linuxm