Я пишу инструмент как часть набора тестов, который должен обмениваться данными через последовательный порт с некоторым оборудованием, чтобы тестируемый код видел изменение среды.
Итак, я делаю это:
open("/dev/tty.usbmodem14141", O_RDWR | O_NOCTTY);
только там висит. Если я заменю этот вызов на
open("/dev/tty.usbmodem14141", O_RDWR | O_NOCTTY | O_NONBLOCK);
тогда это работает - но я бы предпочел не возиться с select () и друзьями или писать опрос занятых циклов, просто чтобы я мог читать с последовательного порта; для этого и нужен блокирующий ввод / вывод.
Нужно ли делать что-то особенное, чтобы это работало?