Linux - 同时从文件读取/写入

问题描述:

Linux对我来说很奇怪,我在考虑如何编写我的程序来安全地操作Linux文件。 如果我的程序对其他进程正在操作的文件(普通文件或开发文件等)进行操作(打开,读取或写入),我应该考虑哪些方面。 你能给我一些想法,或者建议我有用的文章/链接?Linux - 同时从文件读取/写入

+4

读你的第一句话,一个可以安全地假设你没有看到任何东西,但窗口从编程的角度看却:-)我向你保证,这是很奇怪的窗户很多方面,所有其他的操作系统(包括linux)都很正常 – hirschhornsalz 2011-06-03 16:33:26

一个简单的规则:如果每个人都在阅读,让他们阅读,但如果有人正在写作,他们之间总是使用锁定。有关详细信息和示例,请参阅flock。 对于unix,即使文件被锁定文件打开也不会失败。需要尝试咨询锁定。像这样的东西会做:

err = lockf(fd, F_TLOCK, 0); 
if (err < 0) 
    /* err = sharing error */; 
+0

可能想提到'flock()'只是建议性的吗? – dlamotte 2011-06-03 16:59:50

+0

@dlamotte,我不明白。这不足以实现读写同步吗? – 2011-06-03 17:03:17

+0

“群 - 在打开的文件上应用或删除咨询锁”,即:仍然可以写入文件,必须使用侦听锁的功能和/或在写入文件之前手动检查状态。 – dlamotte 2011-06-03 17:13:39