fwrite
将数据写入流。
语法
size_t fwrite(
const void *buffer,
size_t size,
size_t count,
FILE *stream
);
参数
buffer
指向要写入的数据的指针。
size
项大小(以字节为单位)。
count
要写入的项的最大数量。
stream
指向 FILE
结构的指针。
返回值
fwrite
返回函数写入的完整项的数量;如果发生错误,该数量可能小于 count
。 此外,如果发生错误,无法确定文件位置指示器。 如果 stream
或 buffer
是空指针,或者如果在 Unicode 模式下指定了要写入的奇数个字节,函数会调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则该函数将 errno
设置为 EINVAL
并返回 0。
备注
fwrite
函数最多将 count
个项从 size
写入到输出 buffer
,每个项的长度为 stream
。 与 stream
关联的文件指针(如有)以 fwrite
写入的字节数进行递增。 如果在文本模式下打开 stream
,则会将每个换行符替换为回车换行符对。 该替换不会影响返回值。
当在 Unicode 转换模式下打开 stream
时(例如,通过调用 stream
并使用包含 fopen
、ccs=UNICODE
或 ccs=UTF-16LE
的模式参数打开 ccs=UTF-8
时,或者通过使用 _setmode
和包含 _O_WTEXT
、_O_U16TEXT
或 _O_U8TEXT
的模式参数将该模式更改为 Unicode 转换模式时),会将 buffer
解释为指向包含 UTF-16 数据的 wchar_t
数组的指针。 尝试在此模式下写入奇数个字节会导致参数验证错误。
此函数会锁定调用线程,因此它是线程安全的。 有关非锁定版本,请参阅 _fwrite_nolock
。
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
函数 | 必需的标头 |
---|---|
fwrite |
<stdio.h> |
有关兼容性的详细信息,请参阅 兼容性。
示例
请参阅 fread
的示例。