Linux C 多程序檔案操作之檔案鎖

2021-07-23 20:32:33 字數 523 閱讀 9973

flock函式可以鎖定檔案,避免多個程序對同個檔案進行操作時出現資料出錯。flock的用法是在開啟檔案後對檔案讀寫前呼叫flock函式上鎖,檔案操作完後flock解鎖,但需注意另乙個程序操作同個檔案時必須自己去檢查檔案是否已上鎖,即在讀寫檔案前呼叫flock函式即可進行判斷,如果上鎖,該程序則會阻塞,直到該檔案被所占用的程序解鎖。

具體程式如下:

#include #include #include #define max_size 100

int main()

i = fileno(fp);

if(-1 == flock(i,lock_ex))

if(0 == flock(i,lock_ex))

fread(str,max_size,1,fp);

printf("%s\n",str);

sleep(20);

fclose(fp);

flock(i,lock_un);

return 0;

}

linuxC多程序通訊 檔案鎖

英文名 file lock,在同一時刻只允許乙個程序對檔案進行訪問 建議性鎖 advisory locking,又稱協同鎖 核心只提供加減鎖以及檢測是否加鎖,不提供鎖的控制與協調工作 需要多程序相互檢測確認的加鎖機制 a程序對乙個操作的檔案加了鎖 b程序同樣可以對該檔案進行讀寫操作 只有當b程序也對...

linuxC多程序通訊systemv 共享記憶體

共享記憶體通訊限制 舉例 獲取共享記憶體物件的id int shmget key t key,size t size,int shm 對映共享記憶體 void shmat int shmid,const void shmaddr,int shm 解除記憶體對映 int shmdt const voi...

《Linux C》01 檔案I O之Open操作

概要 include include include int open const char pathname,int flags int open const char pathname,int flags,mode t mode int creat const char pathname,mod...