funct 抄自百度,僅為自己留痕

2021-06-22 01:55:21 字數 1751 閱讀 6181



一、函式簡介

1、標頭檔案

#include

#include

#include

2、函式型別

int fcntl(int fd, int cmd);

int fcntl(int fd, int cmd, long arg);

int fcntl(int fd, int cmd, struct flock *lock);

fcntl()針對描述符提供控制。引數fd是被引數cmd操作的描述符。針對cmd的值,fcntl能夠接受第三個引數int arg

3、引數介紹

引數fd代表欲設定的檔案描述符。

引數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_getlk 取得檔案鎖定的狀態。

f_setlk 設定檔案鎖定的狀態。此時flcok 結構的l_type 值必須是f_rdlck、f_wrlck或f_unlck。如果無法建立鎖定,則返回-1,錯誤**為eacces 或eagain。

f_setlkw f_setlk 作用相同,但是無法建立鎖定時,此呼叫會一直等到鎖定動作成功為止。若在等待鎖定的過程中被訊號中斷時,會立即返回-1,錯誤**為eintr。

引數lock指標為flock 結構指標,定義如下

struct flock ;

l_type 有三種狀態:

f_rdlck 建立乙個供讀取用的鎖定

f_wrlck 建立乙個供寫入用的鎖定

f_unlck 刪除之前建立的鎖定

l_whence 也有三種方式:

seek_set 以檔案開頭為鎖定的起始位置。

seek_cur 以目前檔案讀寫位置為鎖定的起始位置

seek_end 以檔案結尾為鎖定的起始位置。

l_start 表示相對l_whence位置的偏移量,兩者一起確定鎖定區域的開始位置。

l_len表示鎖定區域的長度,若果為0表示從起點(由l_whence和 l_start決定的開始位置)開始直到最大可能偏移量為止。即不管在後面增加多少資料都在鎖的範圍內。

返回值 成功則返回0,若有錯誤則返回-1,錯誤原因存於errno.

4、功能

fcntl()用來操作

檔案描述符

的一些特性。fcntl 不僅可以施加建議性鎖,還可以施加強制鎖。同時,fcntl還能對檔案的某一記錄進行上鎖,也就是記錄鎖。

5、函式返回值

fcntl的返回值與命令有關。如果出錯,所有命令都返回-1,如果成功則返回某個其他值。下列四個命令有特定返回值:f_dupfd、f_getfd、f_getfl、f_getown.第乙個返回新的

檔案描述符

,接下來的兩個返回相應標誌,最後乙個返回乙個正的程序id或負的

程序組id。

自己如何建立百度百科 建立百度百科有什麼技巧

規範的語言措辭 百科詞條應使用 說明文 式平實簡明的語言及第三人稱描述,請不要使用 抒情文 或 散文 形式。客觀準確的描述 1 百科應使用第三人稱描述,第一人稱描述如 我認為 筆者以為 你覺得 等不應寫入百科 2 百科應使用準確的時間計量,今年 明年 近幾年 目前 現在 等等時間相關的不準確措辭應修...

自百度6 28事件後的自我反省

相信很多站長都難逃6.28事件的影響,筆者也在此次風波當中被徹底的擊敗,而且敗的是淋漓盡致 筆者幾乎所有 都倒下了,無論是正規的 還是擦邊的 都沒辦法逃過此次劫難,最讓人可悲的是事後無論如何去分析原因 都沒辦法摸透究竟 哪個因素會導致大規模k站,直到最後官方發布事件宣告才稍微了解到問題的所在。一 6...

「有事搜一搜 沒事看一看」,手機百度要抄誰後路?

這事olfecoykcu實上是 搜尋 推薦 戰略深入的乙個關鍵節點。過去雖然在行業層面談及這一策略很多,但使用者對這一點的感知偏弱,而現在全新品牌主張的提出可以看出,將在使用者層強化 搜尋 推薦 的整體認知。為什麼要做 搜尋 推薦 雙引擎?搜尋 推薦 將會乾掉誰的飯碗?純推薦模式有天生缺陷 這兩年今...