Treba sa nato pozriet.. je to zvlastne...
Lebo, na mojom notebooku (s Ubuntu) mam sice "akoze" ttyS0-ttyS3, ale samozrejme, ze jedine
stty -F /dev/ttyUSB0
vrati nieco ine ako "Input/output error".
A ked som vyskusal plus minus tvoj program, tak sa mi to sprava presne ako u teba - cize, same nuly?
Ale preto, ze vlastne /dev/ttyS0 neexistuje. (teda, on sa da otvorit, preto open vrati pekne fd==3,
ale ked nanho zavolas ioctl, tak to neprejde!
Ten ioctl vracia -1 - cize, nastala chyba!
Presvedc sa o tom vypisom (navratove hodnoty "treba" vzdy testovat :-)
Plus si este za ten ioctl daj:
perror("chybicka se vloudila\n");
a dostanes "Input/output error", presne ako to vypisuje stty.
Jednoducho, musis pouzit iny port.
Co vypise
dmesg|grep tty

Tam by si mal vidiet (okrem ineho) tvoje seriove porty... (okrem tty0, co sa nerata...)