fcntl函數

      網友投稿 705 2025-04-01

      fcntl是計算機中的一種函數,通過fcntl可以改變已打開的文件性質。fcntl針對描述符提供控制。參數fd是被參數cmd操作的描述符。針對cmd的值,fcntl能夠接受第三個參數int arg。


      fcntl函數

      #include

      #include

      #include

      fcntl()針對(文件)描述符提供控制.參數fd 是被參數cmd操作(如下面的描述)的描述符.針對cmd的值,fcntl能夠接受第三個參數int arg

      參數cmd

      參數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。

      參數lock指針

      參數lock指針為flock 結構指針,定義如下

      struct flock

      {

      short int l_type;

      short int l_whence;

      off_t l_start;

      off_t l_len;

      pid_t l_pid;

      };

      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決定的開始位置)開始直到最大可能偏移量為止。即不管在后面增加多少數據都在鎖的范圍內。

      返回值 成功返回依賴于cmd的值,若有錯誤則返回-1,錯誤原因存于errno.

      fcntl()用來操作文件描述符的一些特性。fcntl 不僅可以施加建議性鎖,還可以施加強制鎖。同時,fcntl還能對文件的某一記錄進行上鎖,也就是記錄鎖。

      Linux

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:apaas計劃(apaas paas)
      下一篇:無代碼開發平臺哪個好用(無代碼開發平臺什么意思)
      相關文章
      亚洲激情视频在线观看| 亚洲av无码国产精品夜色午夜 | 亚洲伊人久久成综合人影院| 亚洲日产乱码一二三区别 | 亚洲视频免费一区| 亚洲AV日韩AV天堂一区二区三区 | 狠狠色香婷婷久久亚洲精品| 亚洲乱码在线播放| 亚洲中文无码a∨在线观看| 亚洲欧洲高清有无| 亚洲六月丁香六月婷婷蜜芽| 亚洲欧洲中文日产| 亚洲另类古典武侠| 亚洲不卡中文字幕| 亚洲人成电影网站久久| 亚洲AV男人的天堂在线观看| 亚洲一卡2卡3卡4卡乱码 在线| 国产精品亚洲精品青青青| 亚洲精品免费网站| 亚洲日本一线产区和二线 | 亚洲AV无码一区二区一二区| 亚洲AV无码一区二区三区牲色| 亚洲av乱码一区二区三区按摩| 亚洲av最新在线观看网址| 亚洲av成人一区二区三区在线播放| 亚洲欧美自偷自拍另类视| 青青青亚洲精品国产| 亚洲av再在线观看| 国产中文在线亚洲精品官网| 亚洲人成影院在线无码按摩店| 亚洲国产精品国自产拍AV| 亚洲人成在线电影| 亚洲伊人久久大香线蕉在观 | 亚洲综合偷自成人网第页色| 亚洲AV无码一区二区乱子仑| 亚洲高清无码综合性爱视频| 亚洲午夜无码久久久久| 久久亚洲精品中文字幕三区| 亚洲高清视频在线播放| 国产精品亚洲片夜色在线| 自拍偷自拍亚洲精品播放|