fwrite
fwrite
C語言函數,向文件寫入一個數據塊。
把ptr所指向的數組中的數據寫入到給定流stream中。
注意:這個函數以二進位形式對文件進行操作,不局限於文本文件。
返回值:返回實際寫入的數據塊數目。
fwrite
(1)buffer:是一個指針,對fwrite來說,是要獲取數據的地址;
(2)size:要寫入內容的單位元組數;
(3)count:要進行寫入size位元組的數據項的個數;
(4)stream:目標文件指針;
(5)返回實際寫入的數據項個數count。
說明:寫入到文件的哪裡?這個與文件的打開模式有關,如果是w+,則是從file pointer指向的地址開始寫,替換掉之後的內容,文件的長度可以不變,stream的位置移動count個數;如果是a+,則從文件的末尾開始添加,文件長度加大。
fseek對此函數有作用,但是fwrite函數寫到用戶空間緩衝區,並未同步到文件中,所以修改後要將內存與文件同步可以用fflush(FILE *fp)函數同步。
程序示例
示例一:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include |
示例二:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include |
示例三:
1 2 3 4 5 6 7 8 9 10 11 | #include |
稱為myfile.bin的一個文件被創建並存儲到它的緩衝區的內容。為了簡單起見,該緩衝區包含Char元素,但它可以包含任何其他類型。
sizeof(buffer)位元組數組的長度(在這種情況下,它是三個,因為數組有三個元素,每次一個位元組)。
示例四:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | //程序示例 fwrite fread fseek#include |
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
如果成功,該函數返回一個 size_t 對象,表示元素的總數,該對象是一個整型數據類型。如果該數字與 nmemb 參數不同,則會顯示一個錯誤。
● ptr-- 這是指向要被寫入的元素數組的指針。
● size-- 這是要被寫入的每個元素的大小,以位元組為單位。
● nmemb-- 這是元素的個數,每個元素的大小為 size 位元組。
● stream-- 這是指向 FILE 對象的指針,該 FILE 對象指定了一個輸出流。