fwrite ()- 寫入項目
格式
#include <stdio.h>
size_t fwrite(const void *buffer, size_t size, size_t count,
FILE *stream);語言層次
ANSI
安全執行緒
是
說明
fwrite() 函數最多寫入 count 個項目,長度為 size 個位元組,從 緩衝區 到輸出 串流。
回覆值
fwrite() 函數會傳回已順利寫入的完整項目數,如果發生錯誤,則可能小於 count 。
使用 fwrite() 作為記錄輸出時,請將 size 設為 1 ,並將 count 設為記錄長度,以取得寫入的位元組數。 使用記錄 I/O 時,一次只能寫入一筆記錄。
錯誤碼的值可以設為:
- Value
- 意義
- ECONVERT
- 發生轉換錯誤。
- ENOTWRITE
- 檔案未開啟以進行寫入作業。
- EPAD
- 寫入作業發生填補。
- EPUTANDGET
- 讀取作業之後發生無效的寫入作業。
- ESTDERR
- 無法開啟
stderr。 - ESTDIN
- 無法開啟
stdin。 - ESTDOUT
- 無法開啟
stdout。 - ETRUNC
- I/O 作業發生截斷。
- EIOERROR
- 發生非可回復I/O錯誤。
- EIORECERR
- 發生可回復I/O錯誤。
範例
此範例以二進位格式將 NUM long 整數寫入串流。
#include <stdio.h>
#define NUM 100
int main(void)
{
FILE *stream;
long list[NUM];
int numwritten;
int i;
stream = fopen("MYLIB/MYFILE", "w+b");
/* assign values to list[] */
for (i=0; i<=NUM; i++)
list[i]=i;
numwritten = fwrite(list, sizeof(long), NUM, stream);
printf("Number of items successfully written = %d\n", numwritten);
}