首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果文件在Win10 PC上的samba共享上,在带有O_RDWR | O_CREAT | O_EXCL的linux上的open()是原子的吗?

如果文件在Win10 PC上的samba共享上,在带有O_RDWR | O_CREAT | O_EXCL的linux上的open()是原子的吗?
EN

Stack Overflow用户
提问于 2019-06-05 02:11:05
回答 2查看 424关注 0票数 2

我正在将一些代码从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);
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56449257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档