Code di messaggi su C sotto LINUX

OS X, Linux e tutti gli altri OS

Code di messaggi su C sotto LINUX

Messaggioda ares83 » dom ago 22, 2004 5:17 pm

Salve
Ultimamente ho avuto un proplema sulle code di messaggi sotto linux sando il c.
Ho scritto un programma server che crea un thread per rilevare un messaggio da una coda di messaggi installata con msgget.
In questa coda è stato depositato un messaggio da un'altro processo client.
Il problema si verifica quando nel thread viene chiamata la msgrcv. Questa chiamata provoca la terminazione dell'intero processo.
Nel compilare il programma server ho utilizzato la seguente riga di comando nel terminale di linux:
gcc server.c -o server -lpthread.

Cosa posso fare??

Grazie mille
ares83

Niubbo
 
Messaggi: 2
Iscritto il: dom ago 22, 2004 2:31 pm

Messaggioda ikir » dom ago 22, 2004 6:55 pm

Il nostro riko immagino saprà aiutarti, dovrebbe tornare domani o dopodomani :-)
Avatar utente
ikir

Admin
 
Messaggi: 10202
Iscritto il: mer gen 08, 2003 7:33 pm
Località: SYS:Prefs/

Messaggioda ares83 » lun ago 23, 2004 1:59 pm

Non preoccupatevi ho risolto era una cavolata....
Da dentro il main creao il thread che viene subito eseguito.
Quando nel thread viene eseguita la msgrcv è posto in stato di blocco e il comando viene ceduto al main che continua le operazioni fino a terminare l'intero processo.Cosi dopo la creazione del thread ho inserito un ciclo while infinito in modo da evitare che il main termini.
All'interno del ciclo while poi ho inserito delle righe di comando per monitorare il numero di thread in esecuzione.
La soluzione credo che non sia molto elegante ma funziona.....

grazie lo stesso....
ares83

Niubbo
 
Messaggi: 2
Iscritto il: dom ago 22, 2004 2:31 pm

Messaggioda riko » mar ago 24, 2004 3:32 pm

Tutto e` bene quel che finisce bene :ride:
Anche perche` il riko e` attivamente pro-programmazione-event-based/programmazione-asincrona, e abbastanza conro alla programmazione multi-threaded :ride:

Ragion per cui avrebbe avuto un bel po' di problemi a dipanare la matassa :ride:
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City

Messaggioda ikir » mar ago 24, 2004 10:04 pm

[quote="ares83"grazie lo stesso....[/quote]

Tutto è bene quel che finisce bene :-)
Avatar utente
ikir

Admin
 
Messaggi: 10202
Iscritto il: mer gen 08, 2003 7:33 pm
Località: SYS:Prefs/


Torna a Altri sistemi operativi

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti