函数
<cstdio>

fwrite

size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
将数据块写入流
从指向 ptr 的内存块中,将 count 个元素(每个元素的大小为 size 字节)写入到 stream 的当前位置。

流的“位置指示器”会向前移动已写入的总字节数。

内部,该函数将 ptr 指向的块解释为大小为 (size*count)unsigned char 类型数组,并依次将它们写入 stream,就如同对每个字节调用了 fputc 函数一样。

参数

ptr
指向要写入的元素数组的指针,转换为const void*.
size
要写入的每个元素的大小(以字节为单位)。
size_t 是一个无符号整数类型。
count
元素的数量,每个元素的大小为 size 字节。
size_t 是一个无符号整数类型。
stream
指向一个 FILE 对象的指针,该对象指定一个输出流。

返回值

返回成功写入的元素总数。
如果此数字与 count 参数不同,则表示写入错误阻止了函数完成。在这种情况下,将为 stream 设置“错误指示器”(ferror)。
如果 sizecount 为零,则函数返回零,并且“错误指示器”保持不变。
size_t 是一个无符号整数类型。

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* fwrite example : write buffer */
#include <stdio.h>

int main ()
{
  FILE * pFile;
  char buffer[] = { 'x' , 'y' , 'z' };
  pFile = fopen ("myfile.bin", "wb");
  fwrite (buffer , sizeof(char), sizeof(buffer), pFile);
  fclose (pFile);
  return 0;
}

创建一个名为myfile.bin的文件,并将缓冲区的内容存储到其中。为简单起见,缓冲区包含char类型的元素,但它可以包含任何其他类型。
sizeof(buffer)是数组的长度(以字节为单位)(在本例中为三,因为该数组有三个字节大小的元素)。

另见