sve*_*ven 1 c linux atomic fwrite
我正在开发Linux环境下的C代码.我fwrite用来写一些数据到一些文件.该计划将在经常断电(至少每天一次)的环境中运行.因此,我想fwrite确保在写入数据时发生断电时不应更新该文件.它应该只在fwrite完成其工作时保存文件.如何fwrite在文件完成写入过程后才能使用该效果?
编辑:我使用fopen wb来丢弃文件中的先前信息并编写一个新文件,例如
FILE *rtng_p;
rtng_p = fopen("/etc/routing_table", "wb");
fwrite(&user_list, sizeof(struct routing), 40, rtng_p);
Run Code Online (Sandbox Code Playgroud)
并且它是一些非常小的数据,一些字节长
首先将文件写入同一文件系统上的临时路径,如/etc/routing_table.tmp.然后只需将副本重命名为原始文件.重命名是保证原子的.
因此,调用的顺序是,fopen,fwrite,fclose,rename.
| 归档时间: |
|
| 查看次数: |
921 次 |
| 最近记录: |