Chapter5 深入探究文件IO
5.1 race conditions
操作共享资源的两个进程(或线程),其结果取决于一个无法预期的顺序,即这些进程(线程)获得 CPU 使用权的先后相对顺序。例如两个进程同时向一个文件尾部添加数据。
所有系统调用都是以原子操作方式执行的。内核保证了某系统调用中的所有步骤会作为独立操作而一次性加以执行,期间不会为其他进程或线程所中断。
5.2-3 fcntl
使用fcntl(int fd, int cmd, …)获取修改访问模式和状态模式。
cmd
- F_SETFL 更新状态标志
- F_GETFL 获取当前标志副本