LinuxSir.cn,穿越时空的Linuxsir!

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

关于IO的一个奇怪的问题

[复制链接]
发表于 2006-10-18 20:54:46 | 显示全部楼层 |阅读模式
我在使用I/O输出函数时,发现一个现象。
例如:
while(1)
{
printf("%s\n",buf);
bzero(buf,size);
}
条件是,buf从远端接收到数据,然后在本地打印出来,问题是,我每次都使用bzero将buf清空,那么,为何结果会是:
abcd   //第一次是从远端接收到字符串"abcd",结果正常
abc     //第二次,接收到的是"abc",看似正常,但是却多出一行空白

ab      //第3次,接收的是"ab",第一行是要的结果,但是后面一行,却多出一个'd'
d

a        //第4次,收到"a",第1行依然是要的结果,但是后面却多"cd"
cd
然后根据我测试的结果,发现,即使bzero后,下一次打印结果,依然会出现最长一个输出减去本次输出,然后再减1的长度。
我又使用:
{
printf("%s\n",buf);
bzero(buf,size);
printf("%s\n",buf);
}
发现bzero成功将buf清0,但是下次循环到第一个printf时,打印的结果居然还是保留有以前的信息,当然会出现在第2行,第一行是正确输出,但是为什么会有第2行的信息呢,我不是清0了吗?
发表于 2006-10-19 09:52:40 | 显示全部楼层
是不是size=0
回复 支持 反对

使用道具 举报

发表于 2006-10-19 09:58:57 | 显示全部楼层
请帖较为完整的代码
回复 支持 反对

使用道具 举报

发表于 2006-12-26 02:11:27 | 显示全部楼层

上网时间太长了
还以为是关于IQ的什么很奇怪的问题
晕啦
看来有必要去测测了
回复 支持 反对

使用道具 举报

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

本版积分规则

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