Итак, у меня есть проект, который включает создание простой оболочки на C, и одной из функций является поддержка конвейера, например, такой программы:
. / A.out |./b.out перенаправляет стандартный вывод с ./a.out на стандартный вывод ./b.out
Инструкции в моем состоянии назначения для использования 2 вызовов fork (), по одному для каждой команды.
Вот то, что у меня есть до сих пор ... но я понятия не имею, как использовать 2-х ответные вызовы и что даже делать точно ... Я был бы очень признателен за любые советы!Спасибо!
void doPipe()
{
// here I have 2 int arrays that will be passed in to pipe(),
// since pipe takes in an int array of file descriptors to know
// where to get input and store output
int p1[2] = {STDIN_FILENO, STDOUT_FILENO};
int p2[2] = {STDIN_FILENO, STDOOUT_FILENO};
// here i fork to run child process
pid_t pID = fork();
if (pID == 0} { do stuff in child; }
else { do stuff in parent;}
}