Я работаю на платформе Linux. У меня есть консольное многопоточное приложение, которое загружает многопоточную библиотеку общих объектов для других функций. Библиотека общих объектов внутренне открывает последовательный порт для связи. В библиотеке используются «открытые», «чтение» и «запись» системных вызовов Linux для последовательной связи. Последовательная связь использует обработчик сигналов для приема данных. Основной поток в консольном приложении ждет от оператора «scanf», чтобы получить вход от пользователя.функция scanf и сигнал EINTR
Всякий раз, когда на последовательном порту происходит какое-либо действие, генерируется сигнал, из-за которого вызов «scanf» прерывается с помощью EINTR (прерванный системный вызов).
Есть ли способ, с помощью которого «scanf» не прерывается, потому что при операции чтения и записи на последовательном порту?
EINTR - это ошибка, а не сигнал – Bhuvanesh
Вы можете попробовать 'NONBLOCK' для получения ввода. Это не поможет вам избежать этого. –
Да, EINTR - это ошибка. – Pratham