1. 程式人生 > >Linux檔案IO操作常用函式

Linux檔案IO操作常用函式

1.Linux檔案的概念

Linux系統中,一切皆是檔案。無論是鍵盤、滑鼠、顯示屏以及其它裝置,在Linux系統眼中,它們都只是檔案,僅此而已。這就意味著計算機程式可以像使用檔案一樣操控所有的外設。操作檔案(外設)的函式還是比較多的,但是常用的就那麼幾個:open、close、read、write、lseek、ioctl等

有三個比較重要的裝置檔案,可以先了解以後肯定會用到:

/dev/console  系統控制檯

/dev/tty           訪問不同的物理裝置

/dev/null         空裝置,所有寫該裝置的輸出都將被丟棄

2.Linux檔案描述符的概念

檔案描述符是一個非負的整數,它是一個索引值,並指向在核心中每個程序開啟檔案的記錄表。當開啟一個現存檔案或建立一個新檔案時,核心就向程序返回一個檔案描述符;當需要讀寫檔案時,也需要把檔案描述符作為引數傳遞給相應的函式。

有三個比較重要的檔案描述符,以後肯定會使用:

0:標準輸入 STDIN_FILENO

1:標準輸出 STDOUT_FILENO

2:標準錯誤 STDERR_FILENO

3.常用檔案IO操作函式介紹

open:函式是用於開啟或建立檔案。在開啟或建立檔案時可以指定檔案的屬性及使用者的許可權等各種引數。

close:函式是用於關閉一個被開啟的檔案。當一個程序終止時,所有被它開啟的檔案都由核心自動關閉,很多程式都使用這一功能而不顯示地關閉一個檔案。

read:函式是用於將從指定的檔案描述符中讀出的資料放到快取區中,並返回實際讀入的位元組數。若返回0,則表示沒有資料可讀,即已達到檔案尾。讀操作從檔案的當前指標位置開始。當從終端裝置檔案中讀出資料時,通常一次最多讀一行。

write:函式是用於向開啟的檔案寫資料,寫操作從檔案的當前指標位置開始。對磁碟檔案進行寫操作,若磁碟已滿或超出該檔案的長度,則write函式返回失敗。

lseek:函式是用於在指定的檔案描述符中將檔案指標定位到相應的位置。它只能用在可定位(可隨機訪問)檔案操作中。管道、套接字和大部分字元裝置檔案是不可定位的,所以在這些檔案的操作中無法使用lseek呼叫。

ioctl:函式提供了一個用於控制裝置及其描述行為和配置底層的服務的介面。

4.獲得某一個函式的具體使用方法

Linux終端下輸入命令:man 2 + 具體函式名

5.檔案IO函式的具體運用例子

也就是呼叫以上幾個檔案操作API,程式碼我就不貼了,有需要自行下載:

Linux檔案IO操作例程