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;
}
查看全文
相关阅读:
hide the navigationBar and tabBar
js
CATranstion动画
CASpringAnimation
UIImageView动画
打电话发短信
页面滑动悬停在某个控件(两种做法)
导航栏相关设置
ASCII和16进制
C++中,申请字符串数组可用new实现
原文地址:https://www.cnblogs.com/lihaiping/p/4554802.html
最新文章
ListView and gridview常用属性
java list map用法
android studio 自定义控件
android studio 布局
android studio常用控件
android activity and fragment活动周期
android studio 1
mac版 android studio问题解决
UIWebview于JS交互
2020-07-22:你觉得使用redis的主从复制的时候有什么点需要注意的吗?
热门文章
2020-07-23:开启rdb后,redis的启动流程是怎样的?
2020-07-20:你觉得redis有什么缺点,给你改进的话你会怎么改进?
2020-07-21:简述redis主从同步的过程。
2020-07-09:mysql如何开启慢查询?
2020-07-11:session和cookie的区别是什么?
2020-07-10:sql如何调优?
2020-07-13:es是去查id再根据id去查数据库这种方式好,还是所有数据都放es,直接去查es好?
2020-07-12:什么是索引回表,如何避免?
2020-07-07:mysql如何实现跨库join查询?
让程序读出文字
Copyright © 2011-2022 走看看