0

我在多个进程中以 writeshare 和追加模式打开了一个文件流。有谁知道单个无缓冲的写操作是否可以被认为是原子的?

还是我必须开发一种方法来同步不同的写入以确保我的数据安全?

4

1 回答 1

1

我找到了自己的路。

您可以使用此构造函数打开文件流。

new FileStream(FileName,
    FileMode.Append,
    System.Security.AccessControl.FileSystemRights.AppendData,
    FileShare.ReadWrite, 4096, FileOptions.None);

使用System.Security.AccessControl.FileSystemRights.AppendData参数打开流,使用FileMode.Append,操作系统将尝试以原子方式写入缓冲区。

如果您的写入大于缓冲区大小,则操作将不是原子的,因此您必须检查缓冲区大小。

于 2013-02-01T12:07:51.010 回答