Показать сообщение отдельно
  #1  
Старый 29.11.2023, 23:11
Denis Sovkov
Guest
 
Сообщений: n/a
По умолчанию Непонятки с read и write

Denis Sovkov написал(а) к All в Nov 23 22:02:08 по местному времени:


Нello everybody!


Ситауция следующая: имеем программу, программа открывает /dev/ttyUSB0 с флагом ORDWR - можно как записывать, так и читать. В программе два параллельных потока - один раз в 3 секунды записывать текстовыю строку в открытый дескриптор, другой считывает оттуда присланную строку ПОБАЙТНО внешним устройством тогда, когда сможет и выводит на экран. Проблема в том, что во входные данные попадает часть того, что пишется в дескриптор, причем независимо от времени. Пробовал защищать дескриптор мютексом - не помогло, мусорные данные все равно попадают на вход (кстати, нужные данные при этом тоже считываются). Пробовал ставить флаг ODSYNC - тоже не помогло. Мозможно, нужно очищать буфер (какой и как?) сразу после отправки строки. В потоках буферы используются разные - для каждого потока свой. Имею ввиду очистку выходного буфера, который пишет write. ЧЯДНТ? Куда копать?


Denis


--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием