打开文件后写:
FILE *file = fopen("./file", "w");
我可以假设文件是立即创建的吗?打电话是否安全:
stat( "./file", info);
或者我应该更好:
fflush(file);
或
fclose(file);
预先?
编辑:在fopen调用后假设非NULL文件
答案 0 :(得分:2)
如果模式为w,wb,a,ab,w +,wb +,w + b,a +,ab +或a + b,则文件为 以前没有,成功完成后,fopen() function应标记为更新st_atime,st_ctime和st_mtime 文件的字段以及父级的st_ctime和st_mtime字段 。目录
所以我认为在成功的fopen调用之后对文件进行统计是安全的。
答案 1 :(得分:1)
是的,从逻辑上讲,我们可以做到。打开用于在只读文件系统中写入的文件失败。这表明fopen()/ open()确实需要检查。其他确认方法是打开文件,其中 x类似于open()的O_EXCL标志。
答案 2 :(得分:1)