c语言fwrite函数的总结

来源:互联网 发布:淘宝投诉不成立怎么班 编辑:程序博客网 时间:2024/06/06 00:09

头文件:#include <stdio.h>

函数原型:size_t fwrite(const void *buffer, size_t size, size_t count, FILE *stream);

参数:

    buffer:是一个指针,对fwrite来说,是获取数据的地址;

    size:要写入内容的每个数据项的字节数,单位是字节;

    count:要写入count个数据项,每个数据项size个字节;

    stream:目标文件指针。

返回值:

    返回实际写入的数据项个数count。

说明:

    该函数把流写入到文件的哪里?这个与文件的打开模式有关,如果是w+,则是从file pointer指向的地址开始写,替换掉之后的内容,文件的长度可以不变,stream的位置移动count个数;如果是a+,则从文件的末尾开始添加,文件长度加大。

    fseek对此函数有作用,但是fwrite函数写到用户空间缓冲区,并未同步到文件中,所以修改后要将内存与文件同步,可以要fflush(FILE *fp)函数同步。

程序实例:

//程序示例 fwrite fread fseek#include <stdio.h>int main (){    FILE *fp;    char msg[] = "file content";    char buf[20];    fp = fopen("d:\\a\\a.txt","w+");    if (NULL == fp)    {        printf("The file doesn't exist!\n");        return -1;    }    fwrite(msg,strlen(msg),1,fp);//把字符串内容写入到文件    fseek(fp,0,SEEK_SET);//定位文件指针到文件开始位置    fread(buf,strlen(msg),1,fp);//把文件内容读入到缓存    buf[strlen(msg)] = '\0';//删除缓存内多余的空间    printf("buf = %s\n",buf);    printf("strlen(buf) = %d\n",strlen(buf));    return 0;}