LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1351|回复: 3

问一个fwrite的问题。

[复制链接]
发表于 2006-12-19 13:32:02 | 显示全部楼层 |阅读模式
#include  <stdio.h>
main()
{
     FILE *fp;
    char  buf[]="hello world!";
    fp=fopen("test","wb");
    fwrite(buf,sizeof(buf),13,fp);
    fclose(fp);
   exit(0);
}
完成上面操作,运行生成的可执行文件。然后打开test文件,发现在“hello world!”后面有很多预期之外的字符。同时执行ls -l test,发现test文件的长度为4000字节,远远超过了“hello word!”的长度。如果用wirte()函数来替代fwrite(),就没有这个问题。请问各位高手,这是为什么啊?
发表于 2006-12-19 15:24:06 | 显示全部楼层
你看一下fwrite参数的定义:
size_t fwrite(
   const void *buffer,
   size_t size,
   size_t count,
   FILE *stream
);
就应该明白了。按你的意思13应该是1。
回复 支持 反对

使用道具 举报

发表于 2006-12-19 15:36:33 | 显示全部楼层
试试fp=fopen("test", "wt");
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-19 17:21:48 | 显示全部楼层
Post by masterdemon
你看一下fwrite参数的定义:
size_t fwrite(
   const void *buffer,
   size_t size,
   size_t count,
   FILE *stream
);
就应该明白了。按你的意思13应该是1。



已经解决了,谢谢你!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表