1. 程式人生 > >fwrite和fread函式的用法小結(怎麼樣以二進位制形式儲存和讀取檔案)

fwrite和fread函式的用法小結(怎麼樣以二進位制形式儲存和讀取檔案)


返回值:讀或寫的記錄數,成功時返回的記錄數等於nmemb,出錯或讀到檔案末尾時返回的記錄
數小於nmemb,也可能返回0。

    fread和fwrite用於讀寫記錄,這裡的記錄是指一串固定長度的位元組,比如一個int、一個結構體或者一個定長陣列。引數size指出一條記錄的長度,而nmemb指出要讀或寫多少條記錄,這些記錄在ptr所指的記憶體空間中連續存放,共佔size * nmemb個位元組,fread從檔案stream中讀出size * nmemb個位元組儲存到ptr中,而fwrite把ptr中的size * nmemb個位元組寫到檔案stream中。

    nmemb是請求讀或寫的記錄數,fread和fwrite返回的記錄數有可能小於nmemb指定的記錄數。例如當前讀寫位置距檔案末尾只有一條記錄的長度,呼叫fread時指定nmemb為2,則返回值為1。如果當前讀寫位置已經在檔案末尾了,或者讀檔案時出錯了,則fread返回0。如果寫檔案時出錯了,則fwrite的返回值小於nmemb指定的值。下面的例子由兩個程式組成,一個程式把結構體儲存到檔案中,另一個程式和從檔案中讀出結構體

fread和fwrite的例子程式如下: