while( rd = read(fd1, buf, 512) != 0)
{
len += rd;
if(readed < 0)
perror("read: ");
}
MAN 页面说,read() 返回读取字节数,但在我的例子中,此代码返回 block 数(取决于第三个参数)或迭代数。例如,我有一个包含 36 个符号的文件,此代码返回 1,当所有符号正常读取时,如果我将 512 更改为 4,它将返回 9,依此类推。请更正我和此代码以返回以 512 大小块读取的字节数
最佳答案
rd = read(fd1, buf, 512) != 0
表示
rd = (read(fd1, buf, 512) != 0)
!=
的结果始终是 0
或 1
。
你可能是说
while ((rd = read(fd1, buf, 512)) != 0)
关于c - read() 返回 "incorrect"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22227243/