Portál AbcLinuxu, 1. listopadu 2025 18:59
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
Ale jak se tak dívám na zdroják, tak mě moc nepřesvědčuje a možná by pomohlo najít si lepší příklad. Například ta řádka s #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.