Jamal的博客

Linux-文件读写

  1. 文件读写原子性:所有的系统调用都是以原子操作方式执行的,内核保证了某系统调用中的所有步骤会作为独立操作而一次性加以执行,期间不会被其他进程或线程所中断。
  2. 原子性实例
  3. open

    1
    2
    3
    open(const char *pathname, int flags, mode_t mode)
    1. 要打开的文件用pathname来标识,如果pathname是符号链接,则会进行解引用。
    2. flags是位掩码,指定文件的访问模式,模式包括:O_RDONLY O_WRONLY O_RDWR

    fcntl

    1
    2
    3
    4
    fcntl(int fd, int cmd, ...)
    1. cmd可支持的操作范围很多,随后讨论。
    2. 第三个参数以...来标识,可以将其设置为不同的类型或者省略,在这里,我们只讨论设置整数的情况,后面我们会讨论做记录锁,这时候是一个指向结构体的指针。
    3.