linux 文件加锁,解锁,fcntl函数
来源:互联网 发布:新手网球拍淘宝 编辑:程序博客网 时间:2024/04/29 12:16
文件加锁:
#include<stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
void main()
{
int fd;
struct flock lk;
int r;
//打开一个文件
//描述suo
//枷锁
fd = open("a.txt",O_RDWR);
if(fd == -1)
printf(":%m\n"),exit(-1);
lk.l_type =F_WRLCK;
lk.l_whence = SEEK_SET;
lk.l_start = 5;
lk.l_len = 10;
//枷锁
r = fcntl(fd,F_SETLK,&lk);
if(r == 0) printf("枷锁成功!\n");
else printf("枷锁失败!\n");
while(1);
printf("Process\n");
}
////////////////////
访问加锁文件
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
int main()
{
int fd;
struct flock lk = {0};
int r;
fd = open("a.txt",O_RDWR);
if(fd == -1)printf("::%m\n"),exit(1);
r = fcntl(fd,F_GETLK,&lk);
if(r == 0)
printf("得到锁成功\n");
if(lk.l_type = F_WRLCK)
printf("写所");
printf("start:%d,len:%d\n",lk.l_start,lk.l_len);
printf("PID:%d\n",getpid());
return 0;
}
同一个文件不可以同时加上两次锁,第二次加锁时候,会失败!
###
锁也是一个进程可以共享的信息!!
- linux 文件加锁,解锁,fcntl函数
- UC编程5-fcntl函数获取文件状态和加锁解锁/dup函数和文件映射
- linux文件加锁及解锁
- C Linux 文件加锁 lock fcntl
- C Linux 文件加锁 lock fcntl
- fcntl函数的说明与实例 (文件加锁)
- 文件的加锁解锁
- fcntl 对文件加锁示例
- unix c文件加锁解锁
- fcntl函数配合getopt函数实现对任意文件的上锁和解锁操作程序
- linux c复习:文件操作(文件锁:加锁以及解锁)
- php对文件锁进行加锁、解锁
- php语言对文件加锁,解锁
- linux fcntl()函数
- Linux fcntl函数详解
- Linux fcntl函数详解
- Linux fcntl函数详解
- linux fcntl函数说明
- cenos yum epel 源
- ruby 模块
- ruby IO操作
- linux下编译自己的库文件实践
- 「HD_ACM」 A+B for Input-Output Practice (II)
- linux 文件加锁,解锁,fcntl函数
- ruby define_method
- 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut
- 在centos6.4 上安装apache (httpd-2.2.29.tar.gz) 和php(php-5.6.8.tar.gz)
- Android中RelativeLayout各个属性的含义
- 在子线程中Toast
- java IO流小结
- 使用HTML5 API(AudioContext)实现可视化频谱效果
- ListFragment 使用ListView and 自定义Adapter