Как использовать вывод программы A в качестве ввода для B в bash? - PullRequest
0 голосов
/ 17 апреля 2011

То есть B имеет gets, который запрашивает ввод, A имеет puts, который выводит что-то.

И A, и B являются программами на Си.

Как я могу использовать вывод программы A в качестве ввода для B в bash?

То, что я пробовал, это ./A |./B и ./B |./A, но ни один из них не работает.

ОБНОВЛЕНИЕ

Как вещи в стандартный вывод А переходят в стандартный вывод Б на ./A|./B?

1 Ответ

2 голосов
/ 17 апреля 2011

Вот пример для начала:

/* 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

Основной принцип работы каналов заключается в том, что вы пишете встандартный вывод и чтение стандартного ввода.Дайте мне знать, если вам нужна дополнительная помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...