posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          APUE - File I/O (5)

          Posted on 2007-08-22 15:46 ZelluX 閱讀(372) 評論(0)  編輯  收藏 所屬分類: LinuxC/C++
          1. dup和dup2函數
          #include <unistd.h>
          int dup(int filedes);
          int dup2(int filedes, int filedes2);
          // Both return: new file descriptor if OK, -1 on error

          dup返回的file descriptor(以下簡稱fd)為當前可用的最低號碼,dup2則指定目的fd,如果該fd已被打開,則首先關閉這個fd。
          dup后兩個fd指向相同的file table entry,這意味著它們共享同一個的file status flag, read, write, append, offset等。

          事實上,dup等價于
          fcntl(filedes, F_DUPFD, 0);

          dup2和也類似于
          close(filedes2);
          fcntl(filedes, F_DUPFD, filedes2);
          但這不是一個原子操作,而且errno也有一定的不同。
          主站蜘蛛池模板: 嘉黎县| 茌平县| 昂仁县| 太湖县| 栾城县| 长泰县| 阳朔县| 光泽县| 蒲江县| 八宿县| 大英县| 苏尼特左旗| 阜新市| 永新县| 毕节市| 醴陵市| 会东县| 色达县| 施秉县| 乐陵市| 奉贤区| 保定市| 延寿县| 凌源市| 富宁县| 屏山县| 惠来县| 淮阳县| 乌拉特中旗| 沙洋县| 石河子市| 莱芜市| 浦北县| 定襄县| 黄大仙区| 阿尔山市| 榆林市| 土默特左旗| 凤冈县| 边坝县| 高台县|