[Gulli] la porta più "chiusa" del secolo: la seriale

Stefano Lenzi kismet@interfree.it
Mer 26 Lug 2006 00:02:11 CEST


Roberto Leone Jumpy wrote:
> salve a tutti 
> premetto che non sono un esperto e neanche bravo..ma un quasi neofita.
> ho da chiedervi pareri su alcuni problemi riscontrati con la porta seriale.
> 
> provando ad eseguire codici del tipo :
> int main()
> {
> 	//int fd=open("/dev/lirc",O_WRONLY | O_NOCTTY | O_NDELAY);
> 	//int fd=open("/dev/lirc",O_RDWR | O_NOCTTY | O_NDELAY);
> 	int fd=open("/dev/lirc", O_NOCTTY | O_NDELAY);
> 	if (fd==-1)
> 		{/*could not open port */
> 			perror("open_port: unable to open /dev/ttyS0");
> 			extern int errno;
> 			printf("%d\n", errno);
> 		}else
> 			{printf("open_port:	OK \n");
> 
> quando uso int fd=open("/dev/lirc", O_NOCTTY | O_NDELAY); non ho problemi
> , ma se provo ad utilizzare 
> int fd=open("/dev/lirc",O_WRONLY | O_NOCTTY | O_NDELAY);
> o
> int fd=open("/dev/lirc",O_RDWR | O_NOCTTY | O_NDELAY);
> 
> l'esecuzione mi restituisce
> open_port: unable to open /dev/ttyS0: Permission denied
> 29
> 
> premesso che io devo utilizzare la write system call...secondo voi come posso
> fare a risolvere il mio problemino?
Anche secondo me è un errore di permessi...

> io comunque ho bisogno di fare la open almeno in scrittura o lettura scrittura
> altrimenti non ho speranze vero?
Esatto :)
> cioè utilizzando semplicemente  | O_NOCTTY | O_NDELAY la seriale non è abilitata
> a scrivere giusto?
> 
> altra domandina?
> che significa che errno restituisce un numero come nel nostro caso il 29?
> perchè anche in altri casi, ad esempio sfruttando la write mi ha restituito
> un numero 9 (nove)
hai provato ad usare la funzione "perror"?
hai provato ad usare il comando man per cercare il funzionamento delle 
chiamate che usi?
> 
> nel manuale parla di errori del tipo EACCESS , EAGAIN ma non spiega cosa
> vuol dire quando si hanno restituzioni di tipo 9, 29..ecc ecc
guarda quì:
http://www.hmug.org/man/2/intro.php
anche se relativo ad Mac OS X / Darwin, visto che sono entrambi standard 
POSIX dovrebbero essere gli stessi codici...
> 
> grazie a tutti
> 
> 
> 
> ________________________________________
> Sfida subito i tuoi amici online! http://www.jumpy.mediaset.it/Canali_J/Giochi/Directory/Giochi_Multiplayer1.shtml
> 
> 
> 



Maggiori informazioni sulla lista Gulli