termios VMIN VTIME i operacje odczytu / blokowania / nieblokowania

Próbuję napisać prosty program do komunikacji szeregowej C dla Linuksa. Jestem zdezorientowany co do blokujących / nie blokujących odczytów i relacji VMIN / VTIME.

Moje pytanie brzmi: czy powinienem być ustawiony na VMIN / VTIME w zależności od tego, czy mam otwarte / blokujące połączenie?

Na przykład, jeśli mam następujące otwarte połączenie:

open( "/dev/ttyS0", O_RDWR|O_NONBLOCK|O_NOCTTY)

Czy powinienem ustawić VMIN / VTIME na:

.c_cc[VTIME]    = 0;    
.c_cc[VMIN]     = 0;

a jeśli mam tryb blokowania, taki jak:

open( "/dev/ttyS0", O_RDWR|O_NOCTTY)

powinienem ustawić VMIN / VTIME na:

.c_cc[VTIME]    = 0;    
.c_cc[VMIN]     = 1;

?

Czy ma znaczenie, jakie VMIN / VTIME są ustawione, nawet jeśli flagi otwartych portów są odpowiednio ustawione?

Jeśli ktoś mógłby mi pomóc zrozumieć związek między portami VMIN / VTIME a blokującymi / nieblokującymi portami, byłbym wdzięczny.

Dzięki

questionAnswers(3)

yourAnswerToTheQuestion