read返回“不正确的”值

while( rd = read(fd1,buf,512) != 0) { len += rd; if(readed < 0) perror("read: "); }

MAN页面说,read()返回读取字节数,但在我的情况下,这个代码返回块的数量(取决于第三个参数)或迭代次数。 例如,我有36个符号的文件,这个代码返回1,当所有符号正常读取,如果我改变512到4,它将返回9,依此类推。 请纠正我和这个代码返回512个大小的块读取的字节数

Winsock:回声服务器回复两次,当我刚刚编程做一个send()调用

如何获得stream程描述?

Linux的C + +:是否从main()返回导致multithreading应用程序终止?

使用.NET发送电子邮件 – 并不容易

需要使用linux ubuntu从.cpp中find最后一次启动的时间?

rd = read(fd1,512) != 0

手段

rd = (read(fd1,512) != 0)

!=的结果总是为0或1 。

你可能的意思

while ((rd = read(fd1,512)) != 0)

方括号不正确的使用, 改变你的代码,如下所示。 希望它会给你正确的结果。

while( (rd = read(fd1,512)) != 0) { len += rd; if(rd < 0) perror("read: "); }

您是否尝试在while循环条件之外设置第三个值? 没有更多的括号,我认为设置和测试中的条件值段是不正确的。

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...