【发布时间】:2011-08-01 08:42:39
【问题描述】:
我有两个进程,每个进程都在写入大缓冲区数据,我想控制这些进程对一个文件的写入同步。
进程 1 写入缓冲区 A 包括 (A1, A2, A3),进程 2 写入缓冲区 B 包括 (B1, B2, B3)。当我们使用write()系统调用将这些缓冲区写入磁盘到同一个文件(一次整个缓冲区:write(fd, A, sizeof(A)))时,文件架构如何?
- 是这样的:A、B 还是 B、A?
- 或者它可能是这样的:A1, A2, B1, A3, ...
我问这个是因为系统调用是原子的。如果我们正在写入的数据缓冲区太大会发生什么。是不是像普通磁盘文件的管道?
【问题讨论】: