LINUX.ORG.RU

Перенаправление В/В


0

0
Имеется программка, читающая из файла, заданного в ком.строке (из stdin по умолчанию не читает, делает fopen(argv[1],...) без вариантов). Возможно ли как-то перенаправить ей на вход вывод другой программы? Использовать временный файл не могу, в устройстве нет таких объёмов. Ну и вообще вопрос - даже если найду решение (в конце концов отпатчу бинарник на чтение stdin например), будет ли это работать при ограниченных ресурсах? В смысле при перенаправлении prog1 | prog2 обе программы работают параллельно и данные идут напрямую или весь вывод первой программы должен сначала где-то целиком забуферироваться? (целиком негде)

а вы попробуйте сделать
$ cat <file> | md5sum
где file - это файлец на пару десятков гигов. потом прикиньте, может ли он целиком кешироваться cat-ом? :)

// wbr
klalafuda ★☆☆
()
1) Да, при перенаправлении обе программы работают параллельно.

2) Создайте именованный канал:
mkfifo file
prog1 > file & prog2 file
lodin ★★★★
()
Ответ на: комментарий от lodin
Это, конечно, если программа не делает, например, поиска по файлу (lseek) или mmap-а -- для fifo такая операция невозможна.
lodin ★★★★
()
> Возможно ли как-то перенаправить ей на вход вывод другой программы?

progname /dev/stdin

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi
С /dev/stdin почему то не вышло (равно как и с /dev/fd/0), а вот с mkfifo всё получилось на ура, спасибо!
flowswitch
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.