Поток ввода в программу СИ?
#include <stdlib.h>
int main(int argc, char const *argv[]) {
system("/bin/sh");
return 0;
}
Если просто запустить программу откроется bash, если создать файл echo "ls" > test и запустить программу
cat test | ./a.out
То отработает ls и программа закроется, почему так происходит, а не дальше ожидается ввод команд в bash?
Если вот так то работает:
cat test - | ./a.out
Помогите разобраться с логикой конвейера?
Ответы (1 шт):
Автор решения: user7860670
→ Ссылка
bash будет работать пока не закроется поток ввода. cat test отправляет в стандартный ввод содержимое файла и закрывает его. А cat test - продолжает после файла перенаправлять свой стандартный ввод в стандартный ввод следующего процесса.