【发布时间】:2015-02-21 03:03:36
【问题描述】:
相当不言自明,我如何在用 C 写入文件之前检查文件是否存在。
【问题讨论】:
-
以读取方式打开,查看是否成功
-
如果您有 POSIX,并且您只是想确保在打开现有文件进行写入时不会破坏它,请包括
O_EXCL模式和O_CREAT。这是一个原子测试;没有TOCTOU(检查时间,使用时间)漏洞窗口。一般使用'Easier to Ask Forgiveness than Permission' (EAFP) rather than 'Look Before You Leap' (LBYL)测试比较好。 -
如何在写入文件之前检查文件是否存在?别。不能保证在您检查之后但在您编写之前,其他东西不会创建文件。相反,使用
O_CREAT和O_EXCL标志打开文件(并检查EEXIST错误)以避免竞争条件。
标签: c