首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

一起Talk C栗子吧(第138回):Linux文件類型與文件描述符基礎

     編輯:關於C

Linux中一切皆文件

Linux將設備、管道、Socket等統一抽象為文件,通過統一接口操作。理解文件類型與描述符是文件編程的基石。

常見文件類型(ls -l首字符)

類型標識說明
常規文件-普通數據文件
目錄文件d包含文件名與inode映射
符號鏈接l指向另一路徑
塊設備b硬盤等塊存儲
字符設備c終端、串口等流設備
命名管道pFIFO,進程間通信
Sockets網絡/本地通信端點

本系列文件操作示例適用於常規文件、FIFO、Socket等,不直接操作設備文件。

文件描述符:內核管理的整數句柄

  • 非負整數,內核分配/回收,從最小可用值開始分配。
  • 進程級私有:不同進程相同fd指向不同文件表項;同一進程多次打開同一文件得不同fd。
  • 上限:RLIMIT_NOFILE(默認1024,可調),POSIX保證≥16。

三大預留描述符

fd名稱設備文件用途
0STDIN_FILENO/dev/pts/x標準輸入
1STDOUT_FILENO/dev/pts/x標準輸出
2STDERR_FILENO/dev/pts/x標準錯誤

進程啟動自動打開,結束自動關閉,由Shell管理重定向。

查看當前進程打開的fd

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved