<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## fcntl ## 文件描述詞操作 ### 相關函數 ### open,flock ### 表頭文件 ### ``` #include<unistd.h> #include<fcntl.h> ``` ### 定義函數 ### ``` 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代表欲操作的指令。 有以下幾種情況: F_DUPFD用來查找大于或等于參數arg的最小且仍未使用的文件描述詞,并且復制參數fd的文件描述詞。執行成功則返回新復制的文件描述詞。請參考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指針為flock 結構指針,定義如下 ``` struct flcok { short int l_type; /* 鎖定的狀態*/ short int l_whence;/*決定l_start位置*/ 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 以文件結尾為鎖定的起始位置。 ### 返回值 ### 成功則返回0,若有錯誤則返回-1,錯誤原因存于errno.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看