Как проверить, если выход на std::cout (подключенный к трубе) заблокирует


У меня есть программа на C++, которая запускается другим исполняемым файлом, который принимает выходные данные этой программы через канал. В определенных условиях родительский процесс читает медленнее, чем дочерний, и блокирует дочерний процесс, когда буфер канала в диспетчере каналов (QNX) становится полным.

Существует ли стандартный способ проверить, будет ли cout

2 2

2 ответа:

Нет, обнаружение этого зависит от операционной системы.

Для QNX я почти уверен, что Выберите/опрос должен сделать трюк.