您的位置:首页 > 运维架构

通过文件锁实现,程序开始运行时,先判断文件是否存在,若存在则表明该程序已经在运行了,如果不存在就用open函数创建该文件,程序退出时关闭文件并删除文件

2011-10-31 17:07 1236 查看
通过文件锁实现,程序开始运行时,先判断文件是否存在,若存在则表明该程序已经在运行了,如果不存在就用open函数创建该文件,程序退出时关闭文件并删除文件。

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>

int main(int argc,char **argv)
{
int fd,n;

if((fd = open("/home/tanyouliang/shujujiegou/ceshi.c",O_EXCL | O_CREAT,0777)) < 0)
{
if(errno = EEXIST)
{
printf("the program is running!\n");
return -1;
}
else
{
perror("open");
return -1;
}
}

flock(fd,LOCK_EX);
printf("input n:\n");
scanf("%d",&n);
flock(fd,LOCK_UN);

close(fd);
execlp("rm","rm","-rf","/home/tanyouliang/shujujiegou/ceshi.c",(char *)0);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐