当前位置: C语言 -- 标准库 -- <stdio.h> -- fwrite

fwrite函数


概要:
#include <stdio.h>
size_t fwrite(const void * restrict ptr,
      size_t size, size_t nmemb,
      FILE * restrict stream);

描述:

该函数从参数ptr指向的数组中将最多nmemb个元素写入到参数stream指向的流,每个元素的大小为size

对于每个元素,需要调用sizefputc函数,从正好覆盖该元素的unsigned char数组中按顺序获取值。

如果流定义了文件位置指示符,写入元素后,文件位置指示符的前进值等于成功写入的字符数。如果发生错误,文件位置指示符的值是不确定的。


参数:
const void * restrict ptr

指向数组的指针。

size_t size

单个写入元素的大小。

size_t nmemb

写入的元素数目。

FILE * restrict stream

FILE类型指针,指向写入输出的数据流。


返回值:

该函数返回成功写入的元素数目;如果发生写入错误(write error),返回值小于nmemb。如果参数size或者参数nmemb值为0,函数返回值为0,并且流的状态保持不变。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
/*函数fwrite范例*/

#include <stdio.h>

int main(void)
{
    FILE *pFile;
    size_t count;
    const char str[] = "Goals determine what you are going to be. -Julius Erving";

    if(pFile=fopen("gch.bin", "wb"))
        count = fwrite(str, sizeof(char), sizeof(str)/sizeof(str[0]), pFile);

    fclose(pFile);

    if(count==sizeof(str)/sizeof(str[0]))
        puts("Elements have been successfully written.");
    else
        puts("A write error is encountered.");

    return 0;
}


结果:

创建一个名为gch.bin的文件,并将数组的内容写入该文件中。


相关内容:
fread 从流中读取数据到数组的函数。