?? 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 + -