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

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