Closed. This question is off-topic. It is not currently accepting answers. Learn more。
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
两年前关闭。
我包括
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
两年前关闭。
我包括
<error.h>
。#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;
}
最佳答案
您缺少EINTR
的声明,因为<error.h>
与<errno.h>
没有关系,而EINTR
是在这里声明的。错误变量是errno
而不是error
。
关于c - 为什么未声明“EINTR”? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43314326/
10-16 20:47