常用檔案IO函式

2021-10-13 17:11:43 字數 2137 閱讀 1856

#include

#include

#include

​int

open

(const

char

*pathname,

int flags)

;int

open

(const

char

*pathname,

int flags, mode_t mode)

;功能:

開啟檔案,如果檔案不存在則可以選擇建立。

引數: pathname:檔案的路徑及檔名

flags:開啟檔案的行為標誌,必選項 o_rdonly, o_wronly, o_rdwr

mode:這個引數,只有在檔案不存在時有效,指新建檔案時指定檔案的許可權

返回值:

成功:成功返回開啟的檔案描述符

失敗:-

1

flags詳細說明

必選項取值

含義o_rdonly

以唯讀的方式開啟

o_wronly

以只寫的方式開啟

o_rdwr

以可讀、可寫的方式開啟

#include

​int

close

(int fd)

;功能:

關閉已開啟的檔案

引數: fd : 檔案描述符,open

()的返回值

返回值:

成功:0

失敗: -

1, 並設定errno

需要說明的是,當乙個程序終止時,核心對該程序所有尚未關閉的檔案描述符呼叫close關閉,所以即使使用者程式不呼叫close,在終止時核心也會自動關閉它開啟的所有檔案。

但是對於乙個長年累月執行的程式(比如網路伺服器),開啟的檔案描述符一定要記得關閉,否則隨著開啟的檔案越來越多,會占用大量檔案描述符和系統資源。

#include

ssize_t write

(int fd,

const

void

*buf, size_t count)

;功能:

把指定數目的資料寫到檔案(fd)

引數: fd : 檔案描述符

buf : 資料首位址

count : 寫入資料的長度(位元組)

返回值:

成功:實際寫入資料的位元組個數

失敗: -

1

#include

​ssize_t read

(int fd,

void

*buf, size_t count)

;功能:

把指定數目的資料讀到記憶體(緩衝區)

引數: fd : 檔案描述符

buf : 記憶體首位址

count : 讀取的位元組個數

返回值:

成功:實際讀取到的位元組個數

失敗: -

1

#include

#include

​off_t lseek

(int fd, off_t offset,

int whence)

;功能:

改變檔案的偏移量

引數: fd:檔案描述符

offset:根據whence來移動的位移數(偏移量),可以是正數,也可以負數,如果正數,則相對於whence往右移動,如果是負數,則相對於whence往左移動。如果向前移動的位元組數超過了檔案開頭則出錯返回,如果向後移動的位元組數超過了檔案末尾,再次寫入時將增大檔案尺寸。

​ whence:其取值如下:

seek_set:從檔案開頭移動offset個位元組

seek_cur:從當前位置移動offset個位元組

seek_end:從檔案末尾移動offset個位元組

返回值:

若lseek成功執行, 則返回新的偏移量

如果失敗, 返回-

1

所有開啟的檔案都有乙個當前檔案偏移量(current file offset),以下簡稱為 cfo。cfo 通常是乙個非負整數,用於表明檔案開始處到檔案當前位置的位元組數。

檔案I O函式

開啟或者建立檔案 open openat include int open const char path,int oflag,int openat int fd,const char path,int oflag,成功返回檔案描述符,失敗返回 1 oflag引數 o rdonly o wronly...

檔案I O函式 fputs 函式

描述 c 庫函式int fputs const char str,file stream 把字串寫入到指定的流stream中,但不包括空字元。宣告 int fputs const char str,file stream 引數 返回值 該函式返回乙個非負值,如果發生錯誤則返回 eof。用法 incl...

檔案I O函式 fgets 函式

描述 c 庫函式char fgets char str,int n,file stream 從指定的流stream讀取一行,並把它儲存在str所指向的字串內。當讀取 n 1 個字元時,或者讀取到換行符時,或者到達檔案末尾時,它會停止,具體視情況而定。宣告 char fgets char str,in...