0
我包括<error.h>
。爲什麼'EINTR'未申報?
#include <error.h>
#include <unistd.h>
ssize_t rio_readn(int fd, void *buf, size_t n)
{
size_t nleft = n;
char *rbuf = buf;
while(nleft > 0)
{
int nread = read(fd, rbuf, nleft);
if(nread < 0)
{
if(error == EINTR)
nread = 0;
else
return -1;
}
else if(nread == 0)
break;
nleft -= nread;
rbuf += nread;
}
return n - nleft;
}
您已曉得'error'是一個函數? – Olaf
一般來說,請不要在代碼中包含行號 - 這會導致難以複製和編譯。如果在編號錯誤消息中包含行號,最好指出代碼中的哪一行屬於哪個錯誤,但這裏沒有錯誤消息。 –
對不起,我寫'error == EINTR',應該是'errorno == EINTR' – Wonter