环境:ubuntu, buildroot
功能:禁止进程多开
char pidBuf[10];
const char *wiwtool_spid = "/tmp/spid.dat";
if ((fp = fopen(wiwtool_spid, "r")) != NULL) {
fgets(pidBuf, 10, fp);
char pidPath[20];
sprintf(pidPath, "/proc/%s", pidBuf);
if (access(pidPath, F_OK) == 0) {
//wdbg_log("the process is running\n");
fclose(fp);
return 0;
}
fclose(fp);
}
pid_t pid = getpid();
if ((fp = fopen(wiwtool_spid, "wb+")) == NULL) {
//wdbg_log("cannot run...\n");
return 0;
}
fprintf(fp, "%d", pid);
fclose(fp);
参考:https://blog.csdn.net/fishrain/article/details/8241624