微软 Firefox Windows apache wordpress 编程 shell 开源 google Android centos Ubuntu mysql 云计算 nginx 程序员 java Python php linux

每次一行的文件读写函数

  在Linux平臺下對文件編程可以使用兩類函數:(1)Linux操作系統文件API;(2)C語言I/O庫函數。 前者依賴於Linux系統調用,後者實際上與操作系統是獨立的,因為在任何操作系統下,使用C語言I/O庫函數操作文件的方法都是相同的。本章將對這兩種方法進行實例講解。
   Linux的文件操作API涉及到創建、打開、讀寫和關閉文件。

   除了可以通過上述宏進行“或”邏輯產生標誌以外,我們也可以自己用數字來表示,Linux總共用5個數字來表示文件的各種權限:第一位表示設置用戶ID;第二位表示設置組ID;第三位表示用戶自己的權限位;第四位表示組的權限;最後一位表示其他人的權限。每個數字可以取1(執行權限)、2(寫權限)、4(讀權限)、0(無)或者是這些值的和。例如,要創建一個用戶可讀、可寫、可執行,但是組沒有權限,其他人可以讀、可以執行的文件,並設置用戶ID位。那麽,我們應該使用的模式是1(設置用戶ID)、0(不設置組ID)、7(1+2+4,讀、寫、執行)、0(沒有權限)、5(1+4,讀、執行)即10705。

  其中參數buf為指向緩沖區的指針,length為緩沖區的大小(以字節為單位)。函數read()實現從文件描述符fd所指定的文件中讀取length個字節到buf所指向的緩沖區中,返回值為實際讀取的字節數。函數write實現將把length個字節從buf指向的緩沖區中寫到文件描述符fd所指向的文件中,返回值為實際寫入的字節數。

   Linux提供的虛擬文件系統為多種文件系統提供了統一的接口,Linux的文件編程有兩種途徑:基於Linux系統調用;基於C庫函數。這兩種編程所涉及到文件操作有新建、打開、讀寫和關閉,對隨機文件還可以定位。

延伸阅读

评论