------解决方案-------------------- $ man open
......
O_EXCL Ensure that this call creates the file: if this flag is specified in conjunc-
tion with O_CREAT, and pathname already exists, then open() will fail. The
behavior of O_EXCL is undefined if O_CREAT is not specified. ------解决方案-------------------- 学一个API的时候应该多考虑一下他的应用场景.
这个O_EXCL就是一个表现了一个专属的语义. 确保创建一个文件的时候没有其它的同名文件,这样做有什么好处? 比如应用程序1依赖于并读写文件A, 而你写的程序2创建并依赖A, 那么程序2就干扰了程序1. 如果你创建文件的时候加O_EXCL, 那么程序直接报错,以提醒你更换一个文件名,以避免上述情况的发生.