Возникли проблемы с fork(), pipe(), dup2() и exec() в C

После execvp() у вас должен c быть выход с ошибкой - иногда piping он выйдет из строя.

exit(EXIT_FAILURE);

Как указывает pipe @uncleo, список аргументов exec должен иметь нулевой указатель, указывающий fork на конец:

cmdArgs[aCount] = 0;

Мне непонятно, разрешили pipes ли вы обе программы работать dup2 бесплатно - похоже, что вам piping нужно, чтобы первая программа fork в конвейере завершилась перед pipe запуском второй, что не является c рецептом успеха, если первая dup2 программа блокируется из-за piping того, что конвейер заполнено.

c

exec

fork

pipe

dup2

2022-07-16T03:22:25+00:00