fwrite和fread是以記錄為單位的I/O函數(shù),fread和fwrite函數(shù)一般用于二進制文件的輸入輸出渴邦。
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
說明:
參數(shù)size指出一條記錄的長度,而nmemb指出要讀或?qū)懚嗌贄l記錄信峻,這些記錄在ptr所指的內(nèi)存空間中連續(xù)存放瓮床,共占size * nmemb個字節(jié)产镐。
fread從文件stream中讀出size * nmemb個字節(jié)保存到ptr中癣亚,
fwrite把ptr中的size * nmemb個字節(jié)寫到文件stream中获印。
fseek()
功 能: 重定位流上的文件指針
描 述: 函數(shù)設(shè)置文件指針stream的位置。如果執(zhí)行成功绰咽,stream將指向以fromwhere為基準(zhǔn)地粪,偏移offset個字 節(jié)的位置。如果執(zhí)行失敗(比如offset超過文件自身大小)玩敏,則不改變stream指向的位置质礼。
返回值: 成功,返回0眶蕉,否則返回其他值。
int fseek(FILE *stream, long offset, int fromwhere);
第一個參數(shù)stream為文件指針
第二個參數(shù)offset為偏移量碱璃,整數(shù)表示正向偏移嵌器,負(fù)數(shù)表示負(fù)向偏移
第三個參數(shù)origin設(shè)定從文件的哪里開始偏移,可能取值為:SEEK_CUR谐丢、 SEEK_END 或 SEEK_SET
SEEK_SET: 文件開頭
SEEK_CUR: 當(dāng)前位置
SEEK_END: 文件結(jié)尾
其中SEEK_SET,SEEK_CUR和SEEK_END和依次為0,1和2.
簡言之:
fseek(fp,100L,0);把fp指針移動到離文件開頭100字節(jié)處讥珍;
fseek(fp,100L,1);把fp指針移動到離文件當(dāng)前位置100字節(jié)處饭耳;
fseek(fp,100L,2);把fp指針退回到離文件結(jié)尾100字節(jié)處执解。