Здравствуйте, slava_tss, Вы писали:
_>почему read() читающая из /dev/ttyS0 в блокирующем режиме не прерывается сигналом ^C?
Потому что при открытии ttyS0 этот терминал для процесса становится контролирующим и нажатие ^C в другом терминале не приводит к посылке сигнала. Чтобы контролирующий терминал не менялся, укажите флаг O_NOCTTY в open().
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)