检查文件是否由C中的其他应用程序打开?

时间:2014-09-27 01:16:24

标签: c linux file file-io

我正在尝试编写一个程序来加密文件并将结果保存到另一个文件中。作为赋值的一部分,我们不允许使用标准C库函数,如fopen()fgets()fscanf()等来写入文件。相反,我们只能使用open()read()write()close()等Unix系统调用。但是,我想确保我的输出文件在写入之前没有被其他应用程序打开。有什么设施可以用C吗?

1 个答案:

答案 0 :(得分:1)

只需使用伪随机文件名并使用(O_CREATE | O_EXCL)作为选项打开文件。如果该文件已存在,则打开将失败并显示EEXIST,您可以使用新名称重试。

请注意,这不会保证任何东西,只是降低了可能性。真正的保证将需要文件系统和操作系统特定的方法。