+ -
当前位置:首页 → 问答吧 → 如何在多个进程之间共享一个磁盘文件?

如何在多个进程之间共享一个磁盘文件?

时间:2011-07-24

来源:互联网

C/C++ code


/*

问题是这个样子的:
我在磁盘上面有一个文件供多个进程共享。
就是多个进程对该文件进行写操作。
我需要对这个文件进行加锁?
这个加锁的区域是一个什么范围?
难道我从一开始open该文件,
write文件,close文件的整个过程
都要位于临界区中?

如果需要加锁的话。
下面是我的一个思路,不知道可不可行?
将一个互斥锁通过mmap映射到内存,将这个
互斥锁设置为shared属性。之后在多个进程
中对这个互斥锁进行加锁处理。

可行吗?



*/


作者: luo6620378xu   发布时间: 2011-07-24

如果保证写的区域不重叠,不要锁;有重叠的话,给write加锁即可

作者: jackyjkchen   发布时间: 2011-07-24

fcntl 读写锁应该比较适合

作者: justkk   发布时间: 2011-07-24

引用 1 楼 jackyjkchen 的回复:

如果保证写的区域不重叠,不要锁;有重叠的话,给write加锁即可


文件中的记录是一行一行的,每一个进程写入数目不定的行。

作者: luo6620378xu   发布时间: 2011-07-24