fcntl函数

      很多时候,当我们有多个进程要访问同一个文件的时候,为了防止多进程访问导致的不一致,我们就要考虑进程间的同步问题。

fcntl是一个很强大的函数,我们可以通过它给文件的某一部分上锁

int fcntl(int fd, int cmd, ... /*struct flock *flockptr*/);
struct flock{
      short l_type;
      off_t l_start;
      short l_whence;
      off_t  l_en;
      pid_t l_pid;  
}

fcntl函数的5中功能:

   ① 复制一个现有的描述符, cmd=F_DUPFD

      ②  获取 / 设置文件描述符标记, cmd=F_GETFD / F_SETFD

      ③  获取  / 设置文件状态标记, cmd=F_GETFL / F_SETFL

      ④  获取 / 设置异步I/O所有权, cmd=F_GETOWN / F_SETOWN

      ⑤  获取 / 设置记录锁, cmd = F_GETLK / F_SETLK

原文地址:https://www.cnblogs.com/bai-jimmy/p/5477540.html