Рекомендуемый способ таков:
Пример вашей программы модификацииyours.c
(ничего не делает):
#include <stdio.h>
int main (int argc, char argv[])
{
char buf[1024];
int n;
do {
n = fread(buf, sizeof(char), sizeof(buf), stdin);
fwrite (buf, sizeof(char), n, stdout);
} while (n > 0);
}
Настройка исходной программы:
mknod first.pipe
original_program first.pipe
Теперь запустите во втором терминале (или в фоновом режиме)
yours < first.pipe | other_programs
Или, если вы хотите использовать именованный канал
mknod second.pipe
yours < first.pipe > second.pipe
other_prgrams < second.pipe
Повторяю :В большинстве случаев вам на самом деле не нужен именованный канал (fifo ), использование |
в оболочке работает просто отлично. Вам также не нужно жестко кодировать конкретный канал в свои собственные программы, просто используйте перенаправление.