1. 程式人生 > >fread/fwrite函式返回值問題

fread/fwrite函式返回值問題

函式原型:

#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);

nmemb是需要讀取的資料元素個數;
size是每個元素位元組長;

有一種不好的編碼習慣是將nmemb和size倒置使用,雖然大多數情況下都不會有問題,但當需要使用函式返回值的時候卻會出現錯誤,因為只有當size等於每個元素位元組的時候,返回的元素個數才與傳輸的位元組數目相等

,否則就是無效的異常數值。
所以,血的經驗告訴我們,要有一個良好的編碼習慣,否則你都不知道會為自己挖多大一個坑!!!!