используя ввод по каналу файла, не в состоянии получить имя файла, переданное по каналу вместо содержимого файла - PullRequest
0 голосов
/ 19 сентября 2018

Я буду передавать текстовый файл, используя pipe.

cat ./file.txt | ./pargrep word

Я пытался получить имя файла

fgets(buf, NULL, stdin);

Как я могу получить только имя файла вместо файлаконтент, который я получаю, когда использую, получает.Мне нужно прочитать файл, который довольно большой, и мне нужно прочитать его дважды.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Проблема в том, что cat выводит содержимое файла.Если вы хотите имя файла, запустите как

echo ./file.txt | ./pargrep word

, но лучше использовать предложение dernst, а не

0 голосов
/ 19 сентября 2018

Я бы не использовал трубу.Я предполагаю, что вы пишете программу ./pargrep?Я бы передал имя файла, который вы хотите обработать, в качестве первого аргумента вашей программе pargrep.Тогда вторым аргументом будет «слово»

Затем вы откроете файл по имени в программе.

...