- 论坛徽章:
- 0
|
如何使程序在执行时不能执行第二遍
原帖由 "albcamus"][code 发表:
#include <stdio.h>;
#include <unistd.h>;
#include <sys/types.h>;
#include <sys/stat.h>;
#include <fcntl.h>;
#include <stdlib.h>;
int main(int argc,char* argv[])
{
struct flock flk;
flk.l_type = F_WRLCK;
flk.l_start = 0;
flk.l_whence = 0;
flk.l_len = 0;
int fd;
if((fd = open("aa.txt",O_RDWR|O_NONBLOCK|0644)) == -1){
perror("open:");
exit(1);
}
if(fcntl(fd,F_SETLK,&flk) == -1){
perror("fcntl with F_SETLK:");
exit(1);
}
//do something......
pause();
return 0;
}[/code]
albcamus的这个方法还不错,为什么不试试.
在windows下,一般的做法是创建一个mutex.
如果你的linux程序也有创建mutex的权限的话,也可以用创建mutex的方法. |
|