Я делаю оболочку и застрял.
У меня есть функция perform(char* string, int infd, int outfd);
Это успешно берет строку и исполняет ее, выполняя ее идеально.
примеры: "echo $$"
>> "54321"
"echo $(dirname $(pwd))"
>> "/home/solmjs/test"
.
Теперь я должен сделать конвейерную работучтобы я мог разобрать строки следующим образом:
"finger | tail -n +2 | cut -c1-8 | uniq | sort"
Я очень запутался.Как начать?У меня есть функция, которая берет строку и расширяет ее, просматривая символы.Я могу искать «|»символов и, если я это сделаю, сохраните строки строк, которые идут до и после:
finger |tail -n +2 >> "finger", "tail -n + 2"
тогда я вызываю функцию perform
, каким-то образом соединяя эти два?Я знаю, что в каналах outfd подключается к infd следующего, но я не понимаю, как это сделать между этими двумя строками.Спасибо