我正在尝试编写一个程序来加密一个文件并将结果保存到另一个文件中。作为作业的一部分,我们不允许使用标准 C 库函数,如 fopen()
、fgets()
、fscanf()
、等写入文件。相反,我们只能使用 Unix 系统调用,如 open()
、read()
、write()
和 close()
。但是,我想确保我的输出文件在写入之前没有被另一个应用程序打开。在 C 中有什么工具可以做到这一点吗?
最佳答案
只需使用伪随机文件名并使用 (O_CREATE | O_EXCL) 作为选项打开文件。如果文件已经存在,打开将失败并显示 EEXIST,您可以使用新名称重试。
请注意,这并不保证任何事情,只是降低了可能性。真正的保证将需要文件系统和操作系统特定的方法。
关于检查文件是否被 C 中的另一个应用程序打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26070359/