我正在将一些代码从Win32移植到使用锁文件的Linux上。我用open
为Linux做了一个实现,但我只是不确定如果文件在Samba共享上,它是否会工作。我试过了,它似乎可以工作,但我不确定它有多可靠。
为此,我使用带有O_CREAT | O_EXCL
的linux open()
,以便只有在文件尚不存在时才能成功创建该文件。http://man7.org/linux/man-pages/man2/open.2.html
如果运行我的软件的多台计算机同时尝试创建锁文件,那么下面的函数调用会是原子的吗?我不关心谁得到了锁,只要只有一个人得到了锁,所有其他人都没有得到锁。对于那些没有得到锁的人,我希望open
返回-1。
m_iFileDescriptor = open(m_sPath.c_str(), O_RDWR|O_CREAT|O_EXCL, 0666);
https://stackoverflow.com/questions/56449257
复制相似问题