以下内容源于网络资源的学习与整理,欢迎交流。
1、函数原型
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
2、函数作用
把 ptr 所指向的数组中的数据写入到给定流 stream 中,总共写入nmemb个元素,每个元素大小为size个字节。
3、参数与返回值含义
(1)参数含义
(2)返回值含义
4、代码示例
#include<stdio.h>
int main ()
{
FILE *fp;
char str[] = "This is runoob.com";
fp = fopen( "file.txt" , "w" );
fwrite(str, sizeof(str) , 1, fp );
fclose(fp);
return(0);
}
编译并运行上面的程序,这将创建一个文件 file.txt,它的内容如下:
This is runoob.com
1、函数原型
int fflush(FILE *stream)
2、函数作用
刷新流 stream 的输出缓冲区,或者说,fflush会强迫将缓冲区内的数据写回参数stream 指定的文件中。
For output streams, fflush() forces a write of all user-space buffered data for the given output or update stream via the stream's underlying write function.
For input streams, fflush() discards any buffered data that has been fetched from the underlying file, but has not been consumed by the application. The open status of the stream is unaffected.
3、参数与返回值含义
(1)参数含义
stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个缓冲流。
(2)返回值含义
如果成功,该函数返回零值。如果发生错误,则返回 EOF,且设置错误标识符(即 feof)。
4、代码示例
#include <stdio.h>
#include <string.h>
int main()
{
char buff[1024];
memset( buff, '\0', sizeof( buff ));
fprintf(stdout, "启用全缓冲\n");
setvbuf(stdout, buff, _IOFBF, 1024);
fprintf(stdout, "这里是 runoob.com\n");
fprintf(stdout, "该输出将保存到 buff\n");
fflush( stdout );
fprintf(stdout, "这将在编程时出现\n");
fprintf(stdout, "最后休眠五秒钟\n");
sleep(5);
return(0);
}
编译并运行上面的程序,这将产生以下结果。在这里,程序把缓冲输出保存到 buff,直到首次调用 fflush() 为止,然后开始缓冲输出,最后休眠 5 秒钟。它会在程序结束之前,发送剩余的输出到 STDOUT。
启用全缓冲
这里是 runoob.com
该输出将保存到 buff
这将在编程时出现
最后休眠五秒钟
如果上面不理解,参考百科:fflush_百度百科 。