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循环条件之外设置第三个值? 没有更多的括号,我认为设置和测试中的条件值段是不正确的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。