Я использую следующий код для чтения из стандартного ввода
int size;
int bufferSize=2000;
char echoString[bufferSize];
while ((size = read(fileno(stdin), echoString, bufferSize)) > 0){
write(fileno(stdout), echoString, size);
}
Чтобы записать данные, полученные из стандартного ввода на экране ... но это не работает хорошо.
Если я сделаю кошку "hugetarfile.tar.gz" | ./myprogram | tar -zvt это работает, но в конце концов он "рухнул", сообщив, что есть какой-то мусор
Если я сделаю кошку "hugetarfile.tar.gz" | tar -zvt работает как шарм ..
на конце смолы вы можете увидеть:
gzip: stdin: распаковка в порядке, завершающий мусор игнорируется
tar: ребенок вернул статус 2
добавлен файл * fin = freopen (nill, "rb", "stdin")
Кто-то может мне помочь? XD
Просто чтобы сказать ... я создаю чтение для отправки через сокет, но в этом случае эту войну легче протестировать.