fread()函數語法要點
在ANSI標準的IO操作中提供了三種不同類型的IO處理函數,包括字符讀/寫、行讀/寫和塊讀/寫。如果使用的緩沖區的話,不需要每次進行標準IO操作時都使用系統IO調用,至于什么時候使用系統IO調用則根據緩沖區類型和緩沖區中的數據量決定。
塊讀寫文件流是指每次讀出與寫入的數據量可以由編程人員設定,ANSI標準的塊讀出函數聲明如下:
SYNOPSIS
#include
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
DESCRIPTION
The function fread() reads nmemb elements of data, each size bytes long, from the stream pointed to by stream, storing them at the location given by ptr.
此函數將從第4個參數所指示的流中讀取nmenb個大小為size的對象存放在第一個參數ptr所指向的內存空間中。其第一個參數為讀取的對象的存放位置;第二個參數為讀取對象的大小,例如讀出一個結構體buf,該參數可以設置為sizeof(struct buf);第三個參數為讀取對象的個數;第四個參數為讀取的文件流指針。
該函數的返回值為讀取到對象的個數(注意:不是讀取到字節的個數),如果返回值比參數3小,則表示可能讀取到了文件的尾部,這時可以使用feof或者ferror函數來檢測原因。
程序實例:
運行結果: