無緩衝訪問檔案

2021-07-26 06:58:15 字數 1617 閱讀 8684



creat函式

表頭檔案:#include

#include

#include

定義函式: int creat(const char *pathname,mode_tmode);

函式說明:

引數pathname指向欲建立的檔案路徑字串,

creat()

相當於使用下列的呼叫方式呼叫

open();   open(const char *pathname,(o_creat|o_wronly|o_trunc));

open函式

表頭檔案:#include

#include

#include

定義函式:int open( const char * pathname, int flags);

int open( const char * pathname,int flags, mode_t mode);

read函式

表頭檔案:  #include

定義函式:ssize_t read(int fd,void * buf ,size_t count);

函式說明: read(

)會把引數fd所指的檔案傳送count個位元組到buf指標所指的記憶體中。若引數count為0,則read(

)不會有作用並返回0。返回值為實際讀取到的位元組數,如果返回0,表示已到達檔案尾或是無可讀取的資料,此外檔案讀寫位置會隨讀取到的位元組移動

write函式

表頭檔案:  #include

定義函式:  ssize_t write (int fd,const void * buf,size_t count);

函式說明:  write(

)會把引數buf所指的記憶體寫入count個位元組到引數fd所指的檔案內。當然,檔案讀寫位置也會隨之移動

lseek函式

表頭檔案:  #include

#include

定義函式:  off_t lseek(int fildes,off_t offset ,int whence);

) 或write(

)時,讀寫位置會隨之增加,lseek(

)便是用來控制該檔案的讀寫位置的。引數fildes為已開啟的檔案描述詞;引數offset為根據引數whence來移動讀寫位置的位移數,引數whence為下列其中一種。

lseek_set:引數offset即為新的讀寫位置。

lseek_cur:以目前的讀寫位置往後增加offset個位移量。

lseek_end:將讀寫位置指向檔案尾後再增加offset個位移量。

當whence值為seek_cur或seek_end時,引數offet允許負值的出現。下列是較特別的使用方式:

l欲將讀寫位置移到檔案開頭時,lseek(int fildes,0,seek_set)。

l欲將讀寫位置移到檔案尾時,lseek(int fildes,0,seek_end)。

l想要取得目前檔案位置時,lseek(int fildes,0,seek_cur)

close函式

表頭檔案:#include

定義函式:int close(int fd)

函式說明:close(

)用來關閉open(

)開啟的檔案

無緩衝訪問檔案

creat函式 表頭檔案 include include include 定義函式 int creat const char pathname,mode tmode 函式說明 引數pathname指向欲建立的檔案路徑字串,creat 相當於使用下列的呼叫方式呼叫 open open const ch...

緩衝 與 無緩衝

先看下面的程式 在上面的程式中printf函式列印的字串最後沒有帶換行符,而且最後呼叫了 exit 函式,這導致了最後沒有列印出 hello world 下面先介紹幾種緩衝機制 1 全緩衝 全緩衝指的是系統在填滿標準io緩衝區之後才進行實際的io操作 注意,對於駐留在磁碟上的檔案來說通常是由標準io...

標準I O緩衝 全緩衝 行緩衝 無緩衝

說明 我只對網路資源進行了整合,方便學習 基於流的操作最終會呼叫read或者write函式進行i o操作。為了使程式的執行效率最高,流物件通常會提供緩衝區,以減少呼叫系統i o庫函式的次數。基於流的i o提供以下3種緩衝 全緩衝 直到緩衝區被填滿,才呼叫系統i o函式。對於讀操作來說,直到讀入的內容...