Linux系統程式設計 檔案IO 一

2021-07-24 11:54:26 字數 1804 閱讀 8060

最近在在實驗樓上學linux,做點筆記。上面的課程對於學習linux還不錯,有興趣可以看看。

檔案io:

linux提供給了使用者程式一些介面,用來呼叫執行相關的功能。大多數linux檔案i\o只需要用到5個函式:open,read,write,lseek和close

檔案描述符:

檔案描述符是乙個非負整數。當開啟乙個現存盤案或建立乙個新檔案時,核心向程序返回乙個檔案描述符。當寫乙個檔案時,用open或create返回的檔案描述符標識該檔案,將其作為引數傳送給read或write。

整數0、1、2被代換成符號常數:

stdin_fileno(標準輸入,預設是鍵盤)

stdout_fileno(標準輸出,預設是螢幕)

stderr_fileno(標準錯誤輸出,預設是螢幕)

#include #include #include #include #include int main()

else

return 0;

}

2. read

需要包含的標頭檔案:

函式原型:

ssize_t read(int fd, void *bf, size_t count)

功能:

從開啟的檔案中讀取資料。

返回值:

實際讀到的位元組數;如果讀到了檔案尾,返回0,出錯的話返回-1;ssize_t是系統標頭檔案中用typedef定義的資料型別,相當於signed int。

引數:

fd:要讀取的檔案的描述符

buf:得到的資料在記憶體中的位置的首位址

count:期望本次能讀取到的最大位元組數

3. write

需要包含的標頭檔案:

函式原型:

ssize_t write(int fd, const void *buf, size_t count)

功能:向開啟的檔案寫資料

返回值:寫入成功後返回寫入的位元組數,出錯返回-1

引數:

fd:要寫入的檔案的描述符

buf:要寫入檔案的資料在記憶體中存放位置的首位址

count:期望寫入的資料的最大位元組數

#include #include #include int main()

else

return 0;

}

close

需要包含的標頭檔案:

unistd.h

函式原型:

int close(int filedes)

功能:

關閉乙個開啟的檔案

引數:

需要關閉的檔案描述符

lseek

需要包含的標頭檔案:

函式原型:

off_t lseek(int filesdes, off_t offset, int whence)

功能:

設定檔案記憶體讀寫位置

返回值:

成功的話返回新的檔案位移,出錯返回-1

off_t是系統標頭檔案定義的資料型別,相當於signed int

引數:

filesdes:要寫入的檔案的描述符

whence是seek_set, 那麼該檔案的位移量設定為據檔案開始處offset個位元組

whence是seek_cur, 那麼該檔案的位移量設定為當前值加offset。offset可為正或負

whence是seek_end, 那麼該檔案的位移量設定為檔案長度加offset。offset可為正或負

linux系統程式設計之檔案IO(一)

在linux中,一切皆檔案,想對檔案內容進行操作,除了有操作許可權外,更重要的一點是要開啟檔案。以下只有乾貨 1 系統呼叫 include include include int open const char name,int flags int open const char name,int ...

linux系統程式設計之檔案I O

一 檔案描述符 linux系統中,所有開啟的檔案都對應乙個數字,這個數字由系統來分配,稱為檔案描述符。pcb程序控制塊裡有檔案描述符表,以陣列形式存放於核心區。乙個程序預設開啟3個檔案描述符 stdin fileno 0 stdout fileno 1 stderr fileno 2 新開啟檔案返回...

Linux系統程式設計 檔案IO操作

檔案描述符 在 linux 的世界裡,一切裝置皆檔案。我們可以系統呼叫中 i o 的函式 i input,輸入 o output,輸出 對檔案進行相應的操作 open close write read 等 開啟現存盤案或新建檔案時,系統 核心 會返回乙個檔案描述符,檔案描述符用來指定已開啟的檔案。這...