ockf(fd,1,0)是給fd文件上鎖,lockf(fd,0,0)是解鎖,配合使用,實(shí)現(xiàn)進(jìn)程的互斥。

創(chuàng)新互聯(lián)專注于土默特左旗企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站建設(shè)。土默特左旗網(wǎng)站建設(shè)公司,為土默特左旗等地區(qū)提供建站服務(wù)。全流程定制開(kāi)發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(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用于鎖定或打開(kāi)鎖定一個(gè)共享文件.
操作有:
F_LOCK(鎖定),F_TLOCK,F_ULOCK(打開(kāi)鎖定),F_TEST
擴(kuò)展資料:
注意事項(xiàng)
lockf()函數(shù)允許將文件區(qū)域用作信號(hào)量(監(jiān)視鎖),或用于控制對(duì)鎖定進(jìn)程的訪問(wèn)(強(qiáng)制模式記錄鎖定)。試圖訪問(wèn)已鎖定資源的其他進(jìn)程將返回錯(cuò)誤或進(jìn)入休眠狀態(tài),直到資源解除鎖定為止。當(dāng)關(guān)閉文件時(shí),將釋放進(jìn)程的所有鎖定,即使進(jìn)程仍然有打開(kāi)的文件。當(dāng)進(jìn)程終止時(shí),將釋放進(jì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,其僅有一個(gè)字段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
可見(jiàn),在對(duì)稱多處理器架構(gòu)的情況下,LOCK被解釋為指令前綴lock。而對(duì)于單處理器架構(gòu),LOCK不包含任何內(nèi)容。
lock -np
最常用搭配,永久鎖屏,直到輸入密碼為止
其實(shí)問(wèn)這個(gè)問(wèn)題最好問(wèn)你自己的電腦,因?yàn)橛袔讉€(gè)版本還沒(méi)這個(gè)命令(比如我的就是vlock而沒(méi)有l(wèi)ock),直接man lock查看
文章名稱:linux中l(wèi)ock命令 linux lockf函數(shù)
文章地址:http://www.chinadenli.net/article38/doppesp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、Google、網(wǎng)站設(shè)計(jì)、企業(yè)建站、軟件開(kāi)發(fā)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)