termios VMIN VTIME и блокирующие / неблокирующие операции чтения
Я пытаюсь написать простую программу последовательной связи на C для Linux. Я запутался по поводу блокирующих / неблокирующих чтений и отношений VMIN / VTIME.
У меня вопрос, если я должен быть настройки VMIN / VTIME в зависимости от того, есть ли у меня блокирующий / неблокирующий открытый вызов?
Например, если у меня есть следующий открытый вызов:
open( "/dev/ttyS0", O_RDWR|O_NONBLOCK|O_NOCTTY)
Должен ли я установить VMIN / VTIME на:
.c_cc[VTIME] = 0;
.c_cc[VMIN] = 0;
и если у меня есть режим блокировки, как:
open( "/dev/ttyS0", O_RDWR|O_NOCTTY)
я должен установить VMIN / VTIME на:
.c_cc[VTIME] = 0;
.c_cc[VMIN] = 1;
?
Имеет ли какое-то значение то, что VMIN / VTIME установлены, даже если флаги открытия порта установлены соответствующим образом?
Если бы кто-нибудь мог помочь мне понять связь между VMIN / VTIME и блокирующими / неблокирующими портами, я был бы очень благодарен.
Спасибо