У меня есть последовательная программа, соединяющая два устройства через два разных порта. Всякий раз, когда я читаю, конечно, у меня есть локальный буфер с выделенным статическим размером пакета, который я готов прочитать из serial. Мой босс, однако, отметил, что сохранение пакетов в этот локальный буфер не будет безопасным, скорее он посоветовал проверить, могу ли я очищать буфер ОС Linux каждый раз, когда я читаю из последовательного. Каково твое мнение? и как я могу сделать это программно в ubuntu?flush linux OS последовательный буфер
Я думаю, что эта проблема будет решена, если я добавлю TCSAFLUSH к функции tcsetattr. это заставляет его очищать буфер после того, как все данные были записаны в последовательный. это происходит непосредственно перед следующим чтением. надеюсь, если я буду спать() в течение некоторого времени;) что, если ваше мнение?
TTY обычно управляется как обычный файл, вы можете fflush(). Поэтому промывка имеет смысл при написании. При чтении просто потребляют все байты. – BigMike
Я говорю это, потому что соединение может быть шумным. поэтому, просто используя fflush() после записи write(), не так ли? – Sam
С тех пор, как я играл с RS232 в C, на самом деле он сбросил бы все оставшиеся байты в TTY. – BigMike