中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中標準IO及文件描述符是什么

發布時間:2021-10-22 11:04:11 來源:億速云 閱讀:252 作者:柒染 欄目:互聯網科技

這篇文章將為大家詳細講解有關linux中標準IO及文件描述符是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

1. 文件描述符

  1. 文件描述符是一個整型數值

  2. 文件描述符是標記一個被打開的特定的文件的

  3. Linux系統分配文件描述符有一定的規則:

    • 從小到大的方式來分配文件描述符

    • 文件關閉后, 之前分配的文件描述符會被系統回收

    • 系統回收的文件描述符會重新與未被占用的文件描述符一起, 以從小到大的規則再次進行分配

2. Linux系統啟動之后, 返回的文件描述符是從fd = 3開始的, 為什么?

  1. Linux系統啟動之后, 返回的文件描述符是從fd = 3開始的  

    linux中標準IO及文件描述符是什么

    linux中標準IO及文件描述符是什么

  2. Linux系統啟動之后, fd = 0, 1, 2三個文件描述符被分配給了stdin, stdout及stderr

  3. fd = 0, 1, 2三個文件描述符可以通過編程的方式關閉文件來釋放(當前的stdout是輸出到命令行的), 然后重新打開一個文件, 這樣標準輸入輸出便會重定位到了我們打開的文件了. 這樣可以實現標準輸出的重定位.  

    linux中標準IO及文件描述符是什么

    linux中標準IO及文件描述符是什么

3. 文件描述符的復制

1. dup函數復制文件描述符
   - dup復制文件描述符,新的文件描述符是Linux系統自動分配的未被使用的最小值

 linux中標準IO及文件描述符是什么

linux中標準IO及文件描述符是什么

2. dup2復制文件描述符
   - dup2復制文件描述符時,編程者可以指定復制的新的文件描述符的數值,以下實例指定文件描述符為6.

 linux中標準IO及文件描述符是什么

linux中標準IO及文件描述符是什么

3. fcntl復制文件描述符
   - fcntl也可以用來復制文件描述符
   - fcntl的函數原型為 int fcntl(int fd, int cmd, ... /* arg */ );
     各參數含義為:
      fd: 舊的文件描述符
      cmd:命令參數,不同的命令參數執行不同的任務
      .../* arg */: 變參,與cmd參數密切相關.例如在cmd為F_DUPFD時,fcntl函數可以指定復制后的新的文件描
      述符的大小大于或者等于參數arg

linux中標準IO及文件描述符是什么

linux中標準IO及文件描述符是什么

4. Linux中的標準IO

  1. 之前操作文件有FileIO, 為何這里又出現了標準IO?

    • 標準IO也是操作文件的一些標準庫函數

    • 標準IO是在FileIO的一些列Linux內核API的基礎上進行了一層封裝

    • 標準IO在封裝時提供了應用層對文件讀寫的緩沖, 這樣可以與Linux kernel在對文件讀寫是的緩沖進行配合, 從而提高文件操作的效率

    • 標準IO庫函數屏蔽了不同操作系統之間的差別, 從而在不同操作系統上使用方法幾乎一模一樣(Linux, Windows)

  2. 標準IO包含哪些常用的庫函數及如何使用?

    • 常用的標準IO庫函數有: fopen, fclose, fwrite, fread, fflush, fseek等等

    • 常用的標準IO庫函數的用法與FileIO的常用函數基本對應及相似

    • 舉例說明用法  

linux中標準IO及文件描述符是什么

linux中標準IO及文件描述符是什么

關于linux中標準IO及文件描述符是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尤溪县| 雷波县| 开鲁县| 彭山县| 辽中县| 顺平县| 民丰县| 迭部县| 景德镇市| 通化县| 响水县| 若羌县| 遵义县| 江源县| 加查县| 元氏县| 咸宁市| 都安| 铜川市| 扶余县| 碌曲县| 广水市| 芦山县| 天峻县| 镇坪县| 景东| 军事| 辛集市| 台中县| 汉阴县| 陆河县| 黑山县| 锡林浩特市| 和平区| 宜宾县| 视频| 柘城县| 富川| 蚌埠市| 富民县| 兴隆县|