其他分享
首页 > 其他分享> > fcntl文件加锁

fcntl文件加锁

作者:互联网

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,文件,加锁,return,lock,fd,SETLKW
来源: https://www.cnblogs.com/xpylovely/p/13156426.html