Portál AbcLinuxu, 15. června 2024 06:31
Bus 006 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC. příklad jsem stáhl z tldp příklad u mně funguje tak, že program přijme sigio, skočí do funkce, ale nevrátí se z ní, dokud nepošlu další znak následně vypíše, že bylo načteno -1 znaků a prázdný string>
received SIGIO signal. received SIGIO signal. string: long:-1Jak se to chová u Vás? kde hledat chybu? díky za pomoc
#define _POSIX_SOURCE 1
by měla být před všemi těmi #include
(jinak je tam zcela zbytečně) a navíc ten kód rozhodně není POSIX-compliant. Ale jak říkám, je to jen povrchní pozorování, do čtení sériového portu nevidím.
res = read(fd,buf,255); buf[res]='\0'; printf("string:%c long:%d\n", buf[0], res);Pokud provedete tohle s res==-1 tak si nejen zaděláte na průser ale ani nemůžete pořádně věřit tomu printfu. Mimochodem -1 značí chybu, bylo by dobré se pokusit ji získat a vypsat. Funguje Vám ten program bez aio? Proč nepoužijete jednoduše select nebo poll? Aio je obecně považováno za výstřednost.
muzu vedet co je aio?asynchronní i/o
mam to brat jako doporuceni, ze jsou lepsi a podivat se na ne?ano
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.