zoukankan
html css js c++ java
(转)linux用文件锁实现保证一个程序只能启动一个进程
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
int main(int argc,char* argv[])
{
int fd;
int lock_result;
struct flock lock;
char * pFileName = "tmp.lck";
fd = open(pFileName,O_RDWR);
if(fd<0)
{
printf("Open file failed. ");
return 1;
}
lock_result = lockf(fd,F_TEST,0); //参数使用F_LOCK,则如果已经加锁,则阻塞到前一个进程释放锁为止,参数0表示对整个文件加锁
//返回0表示未加锁或者被当前进程加锁;返回-1表示被其他进程加锁
if(lock_result<0)
{
perror("Exec lockf function failed. ");
return 1;
}
lock_result = lockf(fd,F_LOCK,0); //参数使用F_LOCK,则如果已经加锁,则阻塞到前一个进程释放锁为止,参数0表示对整个文件加锁
if(lock_result<0)
{
perror("Exec lockf function failed. ");
return 1;
}
printf("Pid: %ld process locked the file. ",(long)getpid());
//do something
while(getchar()<0);
printf("Pid: %ld process release the file. ",(long)getpid());
return 0;
}
查看全文
相关阅读:
ios 人脸检测
改善用户体验的几个alert提示效果(收集整理)
asp.net中关于《%=》《%#》《%》 的用法——(转帖)
flash学习网址
网页数据表格自动填充序号
<%#..%>与<%=..%>的区别
用Margin还是用Padding
由浅入深漫谈margin属性
css中导入样式表和链接样式表有什么区别,我不是问语法,而是问内在区别,还有我怎么才能体会到他们的区别
ASP.NET Eval如何进行数据绑定
原文地址:https://www.cnblogs.com/lihaiping/p/4554802.html
最新文章
[转]mysql乱码关键处理总结
[转]js获取网站根路径(站点及虚拟目录)
javascript的可控式透明特效
javascript的缓动效果(第1部分)
JavaScript trim函数大赏
一个很简单的淡入淡出相册
javascript的拖放(第2部分)
数组取最大值与最小值
纯CSS相册
判断是否为数组
热门文章
javascript的缓动效果(第2部分)
iphone项目中使用opencv教程 (转)
PS 命令详解
用imageMagick的composite合并图片
ios调用摄像头
如何在XCode中使用gcc编译生成的.a库文件?
opencv face detect demo (转载)
ios 官方人脸检测
常见面试写程序题目
使用Mercurial从Google Code获得 项目源代码
Copyright © 2011-2022 走看看