da
Berello » 22 gen 2011, 15:30
Mi fa piacere!
Se ho inviato quel messaggio non era tanto per fare polemica, ma anche per ricordare a Daniele che ha avuto la risposta: potrebbe non essersene accorto (a me alcune volte è capitato e solo successivamente l'ho notato) o magari si è solo scordato di dire "Ricevuto", perché magari non ha avuto il tempo di provare il codice... Son cose che capitano!
D'altra parte, quando rispondo in un forum non lo faccio solo per gli altri, ma anche per me: per fare una ripassata, per mettermi alla prova (e farmi dire dagli altri "Hai sbagliato questo e quello!") e per imparare sempre qualcosa di nuovo... Quindi non mi sono sicuramente pentito di aver scritto quell'esempio!
(anche se un pochino dispiace se il destinatario non riceve il messaggio)
A questo punto, visto che ci sono, faccio una precisazione: la "struct" che ho chiamato "messaggio" (nel file comune.h) nel mio caso contiene solamente 2 cose: un long (obbligatorio per le code di messaggi) e un vettore di caratteri. Se però servisse, la stessa struct potrebbe contenere anche dati aggiuntivi o diversi da un vettore di caratteri: se ad esempio il dato da trasferire fosse un intero, anziché inserire nella struct un vettore di caratteri, si può mettere una variabile int.
Insomma, a parte il "long mtype;" iniziale della struct, il resto può essere scelto arbitrariamente dal programmatore, come gli è più comodo. Va quindi trattata come una struct normale, con il solo vincolo di iniziare con un "long mtype" (obbligatorio per le code di messaggi).
Altra cosa che voglio segnalare è che il sistema operativo limita la memoria utilizzabile da un messaggio: questo è scritto nelle pagine del man e lì è spiegato come scoprire qual è la dimensione massima nel sistema operativo che si sta usando. Non ricordo se avevo già detto questo, comunque solitamente la dimensione è di circa 8 kB.
