Проблема, однако, в том, что вы пишете в канал без ридера.В соответствии с спецификацией POSIX write
, при записи в канал с открытым только одним концом должна возникать ошибка:
[EPIPE]
Anсделана попытка записи в канал или FIFO, который не открыт для чтения каким-либо процессом, или который имеет только один открытый конец.Сигнал SIGPIPE также должен быть отправлен в поток.
Эта ошибка приводит к непосредственному завершению работы вашей программы, что препятствует выполнению оставшегося кода.
С момента записи на стандартный выводчаще всего буферизуется, программа не успевает очистить вывод, что выглядело так, как будто строка с cout << "checking";
не была выполнена.Если бы вы написали std::cout.flush();
после записи «проверки» на выходе, вы бы увидели это на своем терминале.