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;
}
相关文章
- 02-25使用Typora编写后的md文件优雅的上传到博客
- 02-25如何恢复adobe勒索病毒文件?有人可以帮助解密吗?百分百恢复
- 02-25本地计算机无法复制文件到远程计算机
- 02-251.通用文件模型及VFS结构-基础
- 02-25Grafana 任意文件读取漏洞复现分析
- 02-25EMMC中的文件修改
- 02-25【Tiny4412】EMMC启动Qt网络文件系统
- 02-257、配置文件、封装读取配置文件的方法
- 02-25MICAPS数据文件格式
- 02-2520201103~Config文件读取