Secondo me stai cercando sotterfugi strani e confido che non riuscirai nmmeno nel tuo intento così. Siccome non l'ho mai sentita thread_create presumo si usi sotto linux, comunque io ho programmato con i thread in c sotto windows ed ho usato una funzione analoga a cui i parametri li dovevo passare mediante puntatore a struttura. La funzione è stata concepita per essere usata così e tu così la devi usare, cercare altre strade mi sembra pionieristico specialmente per uno inesperto di c. Ti suggerisco caldamente di fare come ti hanno suggerito quindi: ti crei una struttura, ci carichi i dati dei tipi che ti servono (non vedo il problema nel farlo), la passi per riferimento a create_thread con &nomeVariabileDiTipoMiaStruttura nel quarto parametro. Quando poi ti serve utilizzare i parametri fai un cast del puntatore a void a puntatore di tipo MiaStruttura* e accedi ai campi con l'operatore freccia ->Originariamente inviato da fkiller84
Scusami è che sono davvero alle prime armi con il C e sono incapace anche a spiegarmi:-)....
Allora ti spiego il mio problema per bene: ho questo server che comunica con i vari client con le code di messaggi (msgget e robe simili). Ho messo quindi un ciclo while(1) all'interno del quale eseguo la chiamata di ricezione dei messaggi msgrcv.
A questo punto io creo un thread.
A seconda poi del tipo di messaggio che ricevo (la struttura messaggio da me creata ha un campo type) vorrei che questo thread eseguisse una specifica funzione.
Nell'implementazione precedente avevo messo le funzioni specifiche all'interno del campo funzione della pthread_create, con i problemi di cui ho parlato prima. Allora avevo pensato di creare un thread indifferentemente dal tipo di funzione da fargli eseguire, e poi di differenziare attraveso uno switch la funzione da fargli compiere.
In questo secondo modo però i thread dovrebbero tutti eseguire il codice del programma corrente senza richiamare nessuna funzione: ecco quindi il mio problema!!
Spero di essermi spiegato un po' meglio:-)...