我正在尝试使用c中的系统函数写入打印前3行。
我有以下代码:
ssize_t wresult = 0;
ssize_t res;
ssize_t rresult = 0;
char buff[1];
int count = 0;
while((rresult = read(fd, buff,1))!= 0 )
{
while(wresult != rresult){
ssize_t res = 0;
res = write(STDOUT_FILENO,buff+wresult,rresult-wresult);
if(res < 0) return -1;
wresult += res;
count++;
if(count == 3) break;
}
}
然而,输出不是我想要的 - 它输出整个文件(超过10行)。
如何打印 前3行。
答案 0 :(得分:1)
函数write()
会将多个字节写入文件(或stdout)。你需要找出线的末端。
您在此处拥有的代码存在许多问题。变量count
未设置为任何值,因此它始终为0。
此外,从您在这里的代码中,您正在读取1字节缓冲区。这会导致崩溃。