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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.