📄 lockfile.c
字号:
//// Implementation of lock for files//#include "LockFile.h"extern void Log(int, char *, ...);extern void Fatal(char *, ...);#define _(t) tLockFile::LockFile(){ isLocked = false; name = "";}LockFile::~LockFile(){ UnLock();}bool LockFile::Lock(const char *fname){ FILE *fp; const char *dn; int n; struct stat sbuf; Log(LOG_NOTICE, _("Locking file %s"), fname); dn = fname; if (dn = strrchr(fname, '/')) dn++; name = LOCK_DIR; name += "/LCK.."; name += dn; isLocked = false; if (stat(name.c_str(), &sbuf) != -1) { Log(LOG_WARNING, _("UUCP Lock file exists")); if ((fp = fopen(name.c_str(), "r")) != NULL) { fscanf(fp, "%10d\n", &n); fclose(fp); if (n == getpid()) return true; Log(LOG_ERR, _("Device %s locked by process %d"), dn, n); } return isLocked; } Log(LOG_DEBUG, _("Creating uucp lock %s"), name.c_str()); if ((fp = fopen(name.c_str(), "w")) == NULL) Fatal(_("Creating lock file %s"), name.c_str()); fprintf(fp, "%10d\n", getpid()); fclose(fp); return isLocked = true;}void LockFile::UnLock(){ Log(LOG_NOTICE, _("Unlocking %s"), name.c_str()); if (isLocked) unlink(name.c_str());}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -