RU.LINUX----------------- < Пред. | След. > -- < @ > -- < Сообщ. > -- < Эхи > --
 Nп/п : 72 из 100
 От   : Denis Sovkov                        2:5020/570.77     29 ноя 23 22:08:04
 К    : All                                                   29 ноя 23 22:10:02
 Тема : Непонятки с read и write
----------------------------------------------------------------------------------
                                                                                 
@MSGID: 2:5020/570.77 65678c27
@CHRS: CP866 2
@TZUTC: 0300
@TID: hpt/lnx 1.4.0-sta 16-02-06
* 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.


   Hello everybody!


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


Denis


--- GoldED+/LNX 1.1.5-b20180707
 * Origin:  ----> Default GoldED Origin <----  (2:5020/570.77)
SEEN-BY: 46/49 50/18 361 450/68 452/28 455/19
469/122 5010/275 5019/40
SEEN-BY: 5020/101 290 545 556 570 715 837 848
921 1042 2992 4096 4441 9696
SEEN-BY: 5020/12000 5022/2 128 5023/24 5026/49
5028/63 5030/500 1081 1900
SEEN-BY: 5034/13 5037/28 5055/73 5057/19 5059/37
5060/900 5075/128 6035/4
SEEN-BY: 6056/1 6078/80 6090/1
@PATH: 5020/570 715 4441



   GoldED+ VK   │                                                 │   09:55:30    
                                                                                
В этой области больше нет сообщений.

Остаться здесь
Перейти к списку сообщений
Перейти к списку эх