当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于fwrite函数的提问
帖子发表于 : 2009-09-05 22:14 
头像

注册: 2008-07-21 9:44
帖子: 2371
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
代码:
/*fwrite.c*/
#include<stdio.h>
int main()
{
        FILE *stream;
        char s[3]={'a','b','c'};
   size_t i,nmemb;
   /*首先使用fopen打开文件,之后再调用fwrite写入文件*/
   stream=fopen("what","w");
   i=fwrite(s,sizeof(char),nmemb,stream);
   printf("i=%d\n",i);
   fclose(stream);
   return 0;
}

上面这一段代码编译没有什么问题,可是执行时返回的 i 的值为什么是0而不是3?(在我机器上编译执行后 i 的返回值是 0)
引用:
fread, fwrite - 二进制流的输入/输出

总览 (SYNOPSIS)
#include <stdio.h>

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE
*stream);

描述 (DESCRIPTION)
函数 fread 从 stream 指定 的 流 里面 读取 nmemb 个 数据单元, 每个 单 元
有 size 个 字节, 然后 存放在 ptr 指定 的 数据区.

函 数 fwrite 向 stream 指定 的 流 输出 nmemb 个 数据单元, 每个 单元 有
size 个 字节, 数据 来源 由 ptr 指针 指出.

相应的 无锁函数(non-locking) 参见 unlocked_stdio(3).

返回值 (RETURN VALUE)
fread 和 fwrite 返回 成功 读/写 的 单元数 (也就是说, 不是字节数). 如 果
出现 错误 或 到达文件末尾, 函数 返回 缩小的 单元数 (或0).

……



_________________

My blog


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于fwrite函数的提问
帖子发表于 : 2009-09-05 22:24 
头像

注册: 2007-10-19 14:51
帖子: 4953
地址: 深圳
送出感谢: 0 次
接收感谢: 2
/*fwrite.c*/
#include<stdio.h>
int main()
{
FILE *stream;
char s[3]={'a','b','c'};
size_t i;
/*首先使用fopen打开文件,之后再调用fwrite写入文件*/
stream=fopen("what","w");
i=fwrite(s,sizeof(char),sizeof(s),stream);
printf("i=%d\n",i);
fclose(stream);
return 0;
}


_________________
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于fwrite函数的提问
帖子发表于 : 2009-09-05 22:27 
头像

注册: 2008-07-21 9:44
帖子: 2371
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
我明白了,谢谢 yaoms


_________________

My blog


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于fwrite函数的提问
帖子发表于 : 2009-09-06 12:13 

注册: 2009-06-27 23:33
帖子: 37
送出感谢: 0 次
接收感谢: 0 次
问题在这个语句里面
i=fwrite(s,sizeof(char),nmemb,stream);
nmemb的值
还有fopen之后建议做个检查。
if(!stream)
{...}


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译