<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Salve a tutti,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>sono un&nbsp;newbee della programmazione di Linux e 
principalmente ho usato il manuale di Simone Piccardi per muovere i primi 
passi.</FONT></DIV>
<DIV><FONT face=Arial size=2>( Colgo l'occasione x ringraziarlo del suo 
manuale).</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Sto utilizzando le code x far comunicare due 
differenti processi. Definisco la struttura dei messagggi della coda: 
</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>struct msgbuf 
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//struttura dei Messaggi della coda<BR>&nbsp; long mtype;<BR>&nbsp;&nbsp;int 
userdata;<BR>&nbsp;&nbsp;};</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Ecco in sintesi il mio programma:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>void main()</FONT></DIV>
<DIV><FONT face=Arial size=2>{</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; struct msgbuf msg;</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;ket_t key;</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; ..</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp; dichiaro variabili</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; ..</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; key = ftok(".",'m');<BR>&nbsp;&nbsp; 
printf("key : %d ", key);<BR>&nbsp;&nbsp; if( (qid =creacoda(key)) == -1) 
printf(" Errore creazione Coda Messsaggi");<BR>&nbsp;&nbsp; 
msg.mtype=1;</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; 
msg.userdata=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; if (inviamsg(qid,&amp;msg) == -1) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
perror("send_message");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
exit(1);<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>}</FONT></DIV><FONT face=Arial size=2>
<DIV><BR>int creacoda(key_t keyval)<BR>{<BR>&nbsp; int qid;<BR>if(( msgget( 
keyval,IPC_CREAT | 0660)) == -1)<BR>&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
return(-1);<BR>&nbsp; }<BR>&nbsp; printf("Creata coda con 
qid=%d",qid);<BR>&nbsp; return(qid);<BR>}</DIV>
<DIV>&nbsp;</DIV>
<DIV>int inviamsg(int qid, struct msgbuf *msg )<BR>{<BR>int 
result,lenght;<BR>lenght = sizeof(struct msgbuf) - sizeof (long);<BR></DIV>
<DIV>if ((result= msgsnd(qid, msg, lenght, 0)) == -1 
)&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
<DIV>&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
return(-1);<BR>&nbsp; }<BR>return(result);<BR>}<BR></DIV>
<DIV>&nbsp;</DIV>
<DIV>La funzione di "msgsnd " ritorna con l'errore&nbsp;&nbsp;&nbsp; ": invalid 
argument". L'errore EINVAL viene generato per un valore msgid invalido (ma non 
la funzione msgget ritorna un valore positivo), se viene passato un msg con 
campo mtype non positivo ( è impostato a 1), oppure msgsz &gt; MSGMAX (8192). 
Qualcuno a una idea sulla possibile causa dell'errore?</DIV>
<DIV>&nbsp;</DIV>
<DIV>Grazie in anticipo </DIV>
<DIV>&nbsp;</DIV>
<DIV>Francesco</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><BR>---<BR>Outgoing mail is certified Virus Free.<BR>Checked by AVG 
anti-virus system (<A 
href="http://www.grisoft.com">http://www.grisoft.com</A>).<BR>Version: 6.0.732 / 
Virus Database: 486 - Release Date: 29/07/2004</DIV></FONT></BODY></HTML>