首页 > 其他 > 详细

fcntl文件加锁

时间:2020-06-18 11:58:00      阅读:45      评论:0      收藏:0      [点我收藏+]

int main()
{
struct flock lock;
lock.l_type = F_WRLCK;
lock.l_whence = SEEK_SET;
lock.l_start = 0;//注意这里加锁的位置如果没有重合,那么两个进程或线程可以对同一个文件的不同位置进行加锁
lock.l_len = 8;
int fd = open("1.txt", O_WRONLY | O_CREAT | O_TRUNC);
if (fd == -1) {
perror("open");
return -1;
}
if (fcntl(fd, F_SETLKW, &lock) == -1) { //F_SETLKW   lock_wait 阻塞等待别的进程释放锁   /F_SETLKW 不等待直接返回
close(fd);
perror("fcntl");
return -1;
}
sleep(50);
close(fd);
return 0;
}

fcntl文件加锁

原文:https://www.cnblogs.com/xpylovely/p/13156426.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!