PDA

View Full Version : differenze echo nella shell e write in c


Miky Mouse
13-10-2009, 08:38
ciao a tutti,

allora... il mio problem oggi è questo:

devo scrivedere su una porta seriale (/dev/ttyS3) dei caratteri che vengono ricevuti da un "apparato" su cui non ho controllo (quindi non posso vedere cosa gli arriva effettivamente).

se dalla shell scrivo

echo "ciao" >> /dev/ttyS3

tutto va bene... se invece provo a scrivere un programma che fa la stessa cosa non funziona niente (qualcosa sulla porta viene inviato, ma evidentemente non la scritta giusta perche l'altro apparato non risponde).

più o meno il listato è questo:

tty_fd = open(TTY_DEV,O_RDWR| O_NOCTTY | O_NONBLOCK)
write(tty_fd,"ciao",sizeof(char)*5);


forse nel programma devo impostare di nuovo tutti i parametri di comunicazione per la porta? o forse devo inserire qualche carattere di terminazione nel write?

Miky Mouse
13-10-2009, 12:24
mi rispondo da solo....

la scrittura corretta è:


tty_fd = open(tty_dev,O_WRONLY| O_NOCTTY | O_NONBLOCK);

...impostazione attributi della porta...

write(tty_fd,"ciao\r",5);


mancava il maledetto \r :sofico: