我正在使用以下代码从标准输入读取
int size;
int bufferSize=2000;
char echoString[bufferSize];
while ((size = read(fileno(stdin), echoString, bufferSize)) > 0){
write(fileno(stdout), echoString, size);
}
把从标准输入获得的数据写在屏幕上……但它不能很好地工作。如果我做一只猫“hugetarfile.tar.gz”| ./我的程序 | tar -zvt 它可以工作,但最后它“崩溃”告诉有一些垃圾。如果我做 cat "hugetarfile.tar.gz" | tar -zvt 它就像一个魅力..
在焦油的末尾,您可以看到:
gzip: stdin: 解压OK,尾随垃圾被忽略 tar: Child 返回状态 2 添加文件 *fin = freopen(nill, "rb", "stdin")
有人可以帮助我吗?xD
只是告诉...我正在创建读取以通过套接字发送,但在这种情况下,这场战争更容易测试。