ockf(fd,1,0)是給fd文件上鎖,lockf(fd,0,0)是解鎖,配合使用,實現(xiàn)進程的互斥。
創(chuàng)新互聯(lián)專注于土默特左旗企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站建設(shè)。土默特左旗網(wǎng)站建設(shè)公司,為土默特左旗等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
頭文件
#include sys/file.h
函數(shù):
int lockf(int fd, int cmd, off_t len);
fd -- 文件id.
fcntl(2)的接口(inteface)函數(shù)
返回1表示調(diào)用lockf成功.
lockf用于鎖定或打開鎖定一個共享文件.
操作有:
F_LOCK(鎖定),F_TLOCK,F_ULOCK(打開鎖定),F_TEST
擴展資料:
注意事項
lockf()函數(shù)允許將文件區(qū)域用作信號量(監(jiān)視鎖),或用于控制對鎖定進程的訪問(強制模式記錄鎖定)。試圖訪問已鎖定資源的其他進程將返回錯誤或進入休眠狀態(tài),直到資源解除鎖定為止。當關(guān)閉文件時,將釋放進程的所有鎖定,即使進程仍然有打開的文件。當進程終止時,將釋放進程保留的所有鎖定。
函數(shù)聲明:
/* 'lockf' is a simpler interface to the locking facilities of 'fcntl'. LEN is always relative to the current file position. The CMD argument is one of the following. This function is a cancellation point and therefore not marked with __THROW. */
#include unistd.h
int lockf(int fd, int cmd, off_t len);
Linux的源碼中x86體系結(jié)構(gòu)原子操作的定義文件為。
linux2.6/include/asm-i386/atomic.h
文件內(nèi)定義了原子類型atomic_t,其僅有一個字段counter,用于保存32位的數(shù)據(jù)。
typedef struct { volatile int counter; } atomic_t;
其中原子操作函數(shù)atomic_inc完成自加原子操作。
/**
* atomic_inc - increment atomic variable
* @v: pointer of type atomic_t
*
* Atomically increments @v by 1.
*/
static __inline__ void atomic_inc(atomic_t *v)
{
__asm__ __volatile__(
LOCK "incl %0"
:"=m" (v-counter)
:"m" (v-counter));
}
其中LOCK宏的定義為。
#ifdef CONFIG_SMP
#define LOCK "lock ; "
#else
#define LOCK ""
#endif
可見,在對稱多處理器架構(gòu)的情況下,LOCK被解釋為指令前綴lock。而對于單處理器架構(gòu),LOCK不包含任何內(nèi)容。
lock -np
最常用搭配,永久鎖屏,直到輸入密碼為止
其實問這個問題最好問你自己的電腦,因為有幾個版本還沒這個命令(比如我的就是vlock而沒有l(wèi)ock),直接man lock查看
文章名稱:linux中l(wèi)ock命令 linux lockf函數(shù)
文章地址:http://www.rwnh.cn/article38/doppesp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、Google、網(wǎng)站設(shè)計、企業(yè)建站、軟件開發(fā)、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)