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