Linux將設備、管道、Socket等統一抽象為文件,通過統一接口操作。理解文件類型與描述符是文件編程的基石。
ls -l首字符)| 類型 | 標識 | 說明 |
|---|---|---|
| 常規文件 | - | 普通數據文件 |
| 目錄文件 | d | 包含文件名與inode映射 |
| 符號鏈接 | l | 指向另一路徑 |
| 塊設備 | b | 硬盤等塊存儲 |
| 字符設備 | c | 終端、串口等流設備 |
| 命名管道 | p | FIFO,進程間通信 |
| Socket | s | 網絡/本地通信端點 |
本系列文件操作示例適用於常規文件、FIFO、Socket等,不直接操作設備文件。
RLIMIT_NOFILE(默認1024,可調),POSIX保證≥16。| fd | 名稱 | 設備文件 | 用途 |
|---|---|---|---|
| 0 | STDIN_FILENO | /dev/pts/x | 標準輸入 |
| 1 | STDOUT_FILENO | /dev/pts/x | 標準輸出 |
| 2 | STDERR_FILENO | /dev/pts/x | 標準錯誤 |
進程啟動自動打開,結束自動關閉,由Shell管理重定向。