當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > fread()函數(shù)語法要點(diǎn)總結(jié),附帶程序?qū)嵗?/p>
fread()函數(shù)語法要點(diǎn)
在ANSI標(biāo)準(zhǔn)的IO操作中提供了三種不同類型的IO處理函數(shù),包括字符讀/寫、行讀/寫和塊讀/寫。如果使用的緩沖區(qū)的話,不需要每次進(jìn)行標(biāo)準(zhǔn)IO操作時(shí)都使用系統(tǒng)IO調(diào)用,至于什么時(shí)候使用系統(tǒng)IO調(diào)用則根據(jù)緩沖區(qū)類型和緩沖區(qū)中的數(shù)據(jù)量決定。
塊讀寫文件流是指每次讀出與寫入的數(shù)據(jù)量可以由編程人員設(shè)定,ANSI標(biāo)準(zhǔn)的塊讀出函數(shù)聲明如下:
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.
此函數(shù)將從第4個(gè)參數(shù)所指示的流中讀取nmenb個(gè)大小為size的對(duì)象存放在第一個(gè)參數(shù)ptr所指向的內(nèi)存空間中。其第一個(gè)參數(shù)為讀取的對(duì)象的存放位置;第二個(gè)參數(shù)為讀取對(duì)象的大小,例如讀出一個(gè)結(jié)構(gòu)體buf,該參數(shù)可以設(shè)置為sizeof(struct buf);第三個(gè)參數(shù)為讀取對(duì)象的個(gè)數(shù);第四個(gè)參數(shù)為讀取的文件流指針。
該函數(shù)的返回值為讀取到對(duì)象的個(gè)數(shù)(注意:不是讀取到字節(jié)的個(gè)數(shù)),如果返回值比參數(shù)3小,則表示可能讀取到了文件的尾部,這時(shí)可以使用feof或者ferror函數(shù)來檢測(cè)原因。
程序?qū)嵗?/p>
運(yùn)行結(jié)果: