📄 prg9_7.c
字号:
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include "myipc.h" //这是自定义类库的头文件
#define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
#define PATH_PIDFILE "pidfile"
#define MAXLINE 256
/**brief 启动一个唯一的拷贝
* 记录上锁的一个常见的用途是确保某个程序(例如守护程序)
* 任何时刻只有一个拷贝在运行
*/
int main(int argc,char **argv)
{
int pidfd;
char line[MAXLINE];
///打开一个文件
pidfd = open(PATH_PIDFILE,O_RDWR | O_CREAT,FILE_MODE);
if (zm_write_lock(pidfd,0,SEEK_SET,0) <0)
{
if ((errno == EACCES) || (errno == EAGAIN))
{
printf("unable to lock %s,is %s already running?",
PATH_PIDFILE,argv[0]);
exit(0);
}
else
{
printf("unable to lock %s",PATH_PIDFILE);
exit(0);
}
}
snprintf(line,sizeof(line),"%ld\n",(long)getpid());
ftruncate(pidfd,0);
pause();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -