【发布时间】:2022-01-11 18:26:03
【问题描述】:
假设两个不同的进程独立打开同一个文件,因此在打开文件表(系统范围)中有不同的条目。但它们指的是同一个 i-node 条目。
由于文件描述符引用了打开文件表(系统范围)中的不同条目,因此它们可能具有不同的文件偏移量。由于文件偏移量不同,write 期间是否会有竞争条件?而内核又是如何避免的呢?
书籍:Linux 编程接口;页码95;第 5 章(文件 I/O:更多细节);第 5.4 节
【问题讨论】:
-
你能在这种情况下定义竞争条件吗?您是在谈论内部内核数据结构的一致性,还是从用户空间查看文件内容?
标签: c linux file inode unistd.h