[英]read() return “incorrect” value
while( rd = read(fd1, buf, 512) != 0)
{
len += rd;
if(readed < 0)
perror("read: ");
}
MAN頁面說,read()返回讀取字節數,但在我的情況下,此代碼返回塊數(取決於第三個參數)或迭代次數。 例如,我有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)
不正確使用括號,Pl。 像下面一樣更改你的代碼。 希望它會給你正確的結果。
while( (rd = read(fd1, buf, 512)) != 0)
{
len += rd;
if(rd < 0)
perror("read: ");
}
您是否嘗試將此值設置為while循環條件之外? 如果沒有更多括號,我認為在while條件下設置和測試值部分是不正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.