如果我从多个进程编写一个简单的文本日志文件,它们是否会覆盖/损坏彼此的条目?
(基本上,这个问题UNIX 中文件追加是原子的吗?但适用于 Windows/NTFS。)
您可以在本地文件上获得原子追加。使用 FILE_APPEND_DATA 访问权限打开文件(记录在WDK)。当您省略 FILE_WRITE_DATA 访问时,所有写入将忽略当前文件指针并在文件末尾完成。或者您可以使用 FILE_WRITE_DATA 访问,并在重叠结构中指定它的追加写入(Offset = FILE_WRITE_TO_END_OF_FILE 且 OffsetHigh = -1 记录在WDK).
追加行为在通过不同句柄的写入之间正确同步。我经常使用它来记录多个进程。我确实在每次打开时将 BOM 写入偏移量 0,并附加所有其他写入。时间戳不是问题,可以在需要时对它们进行排序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)