История изменений
Исправление vodz, (текущая версия) :
А вот задание: Модифицировать программу так, чтобы канал использовался для связи двух родственных процессов, исполняющих разные программы.
Задание в том, что вам надо сделать два exec-а разных программ, где изначальная — мониторинг этого обмена? Тогда вам надо два pipe и два fork-а. А O_CLOEXEC тут вовсе не при чём. У pipe всё равно это выставить невозможно, а выставлять fcntl(O_CLOEXEC) всё равно не даст ничего более правильного по сравнению с close(), которые в указанном примере уже написаны и правильно.
Исходная версия vodz, :
А вот задание: Модифицировать программу так, чтобы канал использовался для связи двух родственных процессов, исполняющих разные программы.
Задание в том, что вам надо сделать два exec-а разных программ, где изначальная мониторинг этого обмена? Тогда вам надо два pipe и два fork-а. А O_CLOEXEC тут вовсе не при чём. У pipe всё равно это выставить невозможно, а выставлять fcntl(O_CLOEXEC) всё равно не даст ничего более правильного по сравнению с close(), которые в указанном примере уже написаны и правильно.