;通過文件鎖來實(shí)現(xiàn),在程序運(yùn)行的一開始,檢查某文件是否存在,如果存在則說明改程序已經(jīng)在運(yùn)行了,如果不存在則利用open語句創(chuàng)建該文件,程序退出時關(guān)閉并刪除此文件 。static char file_lock[sizeof(ctl_addr.sun_path)] = /var/run/file.pid;static bool file_lock_created = FALSE;static intcreate_lock(void){ int fd = open(file_lock, O_WRONLY | O_CREAT | O_EXCL | O_TRUNC, S_IRUSR | S_IRGRP | S_IROTH); if (fd < 0) { if (errno == EEXIST) { fprintf(stderr, "file: lock file "%s" already existsn", file_lock); exit_file(10); } else { fprintf(stderr, "file: unable to create lock file "%s" (%d %s)n" , file_lock, errno, strerror(errno)); exit_file(1); } } file_lock_created = TRUE; return fd;}static boolfill_lock(int lockfd){ char buf[30]; /* holds "n" */ pid_t pid; int len; pid = getpid(); len = snprintf(buf, sizeof(buf), "\un", (unsigned int) pid); bool ok = len > 0 && write(lockfd, buf, len) == len; close(lockfd); return ok;}static voiddelete_lock(void){ if (file_lock_created) { //delete_ctl_socket(); unlink(file_lock); /* is noting failure useful? */ }}
推薦閱讀
- 如何在RedHat Linux系統(tǒng)下安裝QQ聊天程序
- 百度一下就接營銷電話怎么辦?百度回應(yīng)監(jiān)聽電話疑問
- Linux下Zend studio漢字顯示為方塊問題
- 快手怎么升級
- Linux操作系統(tǒng)下賬號管理命令及文件介紹
- 北陸長柄武器原胚在哪刷
- 駕駛證身體條件證明在哪里開
- ff14雨傘怎么得
- Linux系統(tǒng)下建立GPRS無線Modem撥號方法
- Red Hat/Novell:Linux重點(diǎn)將是企業(yè)用戶
