[решено] причуды стандартного ввода

Столкнулся со странным поведением:
./prog < test.txt
работает.

А вот
cat test.txt | ./prog
не работает (exception).

В чём разница для программы в этих двух случаях?
такие дела.
cucullus
./prog
не умеет работать с пайпом
смотря что в ./prog
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE
В смысле не умеет? Умеет. Точнее умел, до некоторого изменения, которое, по идее не должно было повлиять на чтение из стандартного ввода.

Вопрос пока общий. Чем различаются (для программы) эти два способа "скармливания" на стандартный ввод.
такие дела.
cucullus
Точнее умел, до некоторого изменения, которое, по идее не должно было повлиять на чтение из стандартного ввода
но повлияло
проверь, вдруг с stdin чёто, иначе сломалась ./prog
cat /etc/fstab|cat /dev/stdin
cucullus
Вопрос пока общий. Чем различаются (для программы) эти два способа "скармливания" на стандартный ввод.
по сути ничем, удобством
./prog < test.txt
ну ту вы заменили stdin на test.txt
cat test.txt | ./prog
а тут содержимое файла вывели в stdout и соединили с stdin второй программы
ну в целом пишут что разница в обработке stderr.
фундаментальной разницы нету.
Ошибки в тексте-неповторимый стиль автора©
но вообще да, странно, возможно действительно в системе чего-то перенастроено
т.к. вот такой простой пример работает и так и этак

> cat mmm.sh
#!/bin/bash
cat /dev/stdin

> ./mmm.sh < /etc/hostname
grayich
> cat /etc/hostname|./mmm.sh
grayich
grayich
иначе сломалась ./prog
в этом нет сомнений.
я просто пытаюсь понять что именно могло сломаться. на глаз не видно.
а как подать вывод с конвейера в отладчик я что-то не догоняю...
такие дела.
ничего не перенастроено. одинаково на разных машинах
такие дела.
echo $SHELL
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE
 
Зарегистрироваться или войдите чтобы оставить сообщение.