|
#1
|
|||
|
|||
Непонятки с read и write
Denis Sovkov написал(а) к All в Nov 23 22:08:04 по местному времени:
* Forwarded from ru.unix by Denis Sovkov (2:5020/570.77). * Originally by: Denis Sovkov (2:5020/570.77), 29 Nov 23 22:02. * Originally to: all. Нello everybody! Ситауция следующая: имеем программу, программа открывает /dev/ttyUSB0 с флагом ORDWR - можно как записывать, так и читать. В программе два параллельных потока - один раз в 3 секунды записывать текстовыю строку в открытый дескриптор, другой считывает оттуда присланную строку ПОБАЙТНО внешним устройством тогда, когда сможет и выводит на экран. Проблема в том, что во входные данные попадает часть того, что пишется в дескриптор, причем независимо от времени. Пробовал защищать дескриптор мютексом - не помогло, мусорные данные все равно попадают на вход (кстати, нужные данные при этом тоже считываются). Пробовал ставить флаг ODSYNC - тоже не помогло. Мозможно, нужно очищать буфер (какой и как?) сразу после отправки строки. В потоках буферы используются разные - для каждого потока свой. Имею ввиду очистку выходного буфера, который пишет write. ЧЯДНТ? Куда копать? Denis --- GoldED+/LNX 1.1.5-b20180707 |