概述
fcntl 文件锁
很多时候,当我们有多个进程要访问同一个文件的时候,为了防止多进程访问导致的不一致,我们就要考虑进程间的同步问题了。fcntl是一个非常强大的函数,在这里我们可以使用它来给文件的某一个部分上锁。先来看一下它的声明:
1 int fcntl(int filedes, int cmd, ... /* struct flock *flockptr */ );
很显然,这是一个拥有可变参数的函数声明,filedes自然是要操作的文件描述符,对与记录锁相关的操作,cmd只能是F_GETLK, F_SETLK, 或者 F_SETLKW,而第三个参数则必须是一个指向flock结构体的指针,来看一下该结构体的内部结构:
1 struct flock { 2 short l_type;/*F_RDLCK, F_WRLCK, or F_UNLCK */ 3 off_t l_start;/*offset in bytes, relative to l_whence */ 4 short l_whence;/*SEEK_SET, SEEK_CUR, or SEEK_END */ 5 off_t l_len;/*length, in bytes; 0 means lock to EOF */ 6 pid_t l_pid;/*returned with F_GETLK */ 7 };
转载于:https://www.cnblogs.com/huminiceblog/p/5310319.html
最后
以上就是不安毛豆为你收集整理的fcntl 文件锁和struct flock(转载)fcntl 文件锁的全部内容,希望文章能够帮你解决fcntl 文件锁和struct flock(转载)fcntl 文件锁所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复