頭文件:
#include <sys/types.h>
#include <unistd.h>
#include < fcntl.h >
原型:
int fcntl(int fd , int cmd,...);
參數(shù):
變參函數(shù),根據(jù)cmd來判斷第三個(gè)參數(shù)。
功能:fcntl()用來操作 文件描述符 的一些特性。fcntl 不僅可以施加建議性鎖,還可以施加強(qiáng)制鎖。同時(shí),fcntl還能對文件的某一記錄進(jìn)行上鎖,也就是記錄鎖。
?
?
cmd:
F_DUPFD用來查找大于或等于參數(shù)arg的最小且仍未使用的 文件描述詞 ,并且復(fù)制參數(shù)fd的文件描述詞。執(zhí)行成功則返回新復(fù)制的文件描述詞。新描述符與fd共享同一文件表項(xiàng),但是新描述符有它自己的一套 文件描述符 標(biāo)志,其中FD_CLOEXEC文件描述符標(biāo)志被清除。請參考 dup2 ()。
F_GETFD取得close-on-exec 旗標(biāo) 。若此旗標(biāo)的FD_CLOEXEC位為0,代表在調(diào)用exec()相關(guān)函數(shù)時(shí)文件將不會關(guān)閉。
F_SETFD 設(shè)置close-on-exec 旗標(biāo)。該旗標(biāo)以參數(shù)arg 的FD_CLOEXEC位決定。
F_GETFL 取得文件描述詞狀態(tài)旗標(biāo),此旗標(biāo)為open()的參數(shù)flags。
F_SETFL 設(shè)置文件描述詞狀態(tài)旗標(biāo),參數(shù)arg為新旗標(biāo),但只允許O_APPEND、O_NONBLOCK和O_ASYNC位的改變,其他位的改變將不受影響。
F_GETLK 取得文件鎖定的狀態(tài)。
F_SETLK 設(shè)置文件鎖定的狀態(tài)。此時(shí)flcok 結(jié)構(gòu)的l_type 值必須是F_RDLCK、F_WRLCK或F_UNLCK。如果無法建立鎖定,則返回-1,錯(cuò)誤代碼為EACCES 或EAGAIN。
F_SETLKW F_SETLK 作用相同,但是無法建立鎖定時(shí),此調(diào)用會一直等到鎖定動(dòng)作成功為止。若在等待鎖定的過程中被信號中斷時(shí),會立即返回-1,錯(cuò)誤代碼為EINTR。
?
所謂文件狀態(tài),簡單理解為讀寫等狀態(tài)。
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
