Вот пример для начала:
/* a.c */
#include <stdio.h>
int main() {
puts("This is a string");
return 0;
}
Скомпилируйте это как "a.out".
Вот программа, которая будет перехватывать строку из a.out:
/* b.c */
#include <stdio.h>
int main() {
char line[1024];
fgets(line,1023,stdin);
printf("b.c: %s",line);
return 0;
}
Скомпилируйте это как "b.out".
Теперь запустите их вместе:
./a.out | ./b.out
Основной принцип работы каналов заключается в том, что вы пишете встандартный вывод и чтение стандартного ввода.Дайте мне знать, если вам нужна дополнительная помощь.