Linux系統中一切皆爲文件,文件可分爲:普通文件、目錄文件、鏈接文件和設備文件。
文件描述符(file descriptor)
- 體現:索引,一個非負整數
- 功能:爲了高效管理已被打開的文件,用於指代被打開的文件,所有執行I/O操作的系統調用都通過文件描述符。
- 常用的文件描述符:0是標準輸入,1是標準輸出,2是標準錯誤
文件描述符與文件與進程的關係:
- 文件描述符與文件:文件與文件描述符的關係就像代碼與進程(程序)的關係。
- 每一個文件描述符會與一個打開文件相對應。
- 不同的文件描述符也會指向同一個文件。
- 文件與進程:
- 一個文件能被不同的進程打開多次。
- 一個文件也能被同一個進程打開多次。
- 關鍵在於進程和文件描述符(文件打開)的關係。關係如下:
- 系統爲每一個進程維護了一個文件描述符表,該表的值都是從0開始的,所以在不同的進程中你會看到相同的文件描述符,這種情況下相同文件描述符有可能指向同一個文件,也有可能指向不同的文件。