danny block notes

domenica, 1 luglio 2007

Unix Programming : Multi-processo e Multi-thread

Filed under: c,linux,programming — danny @ 2:41 PM
Tags: , , , ,
/* MULTI-PROCESSO */

pid_t fork()
// ritorna 0 nel figlio ed il nuovo pid nel padre

pid_t getpid()
// restituisce il pid del processo su cui viene chiamato

pid_t getppid()
// restituisce il pid PADRE del processo su cui viene chiamato

pid_t wait(int *stat_loc)
// mette il processo chiamante in attesa che termini il figlio e ne ritorna il pid (del figlio)
// infine scrive all'indirizzo stat_loc il codice di ritorno del figlio

/* MULTI-THREAD */

int pthread_create(pthread_t *thread,
const pthread_attr_t *attr,
void *(*start_routine)(void *),
void *arg)
/* Crea un nuovo thread eseguendo in esso la funzione start_routine con i parametri
attuali specificati in arg. Il tID del nuovo thread creato viene scritto nella variabile
puntata da thread. La funzione restituisce 0 in tutti i casi in cui non si verifica errore.
*/

int pthread_detach(pthread_t thread);
/*  Rende il thread, il cui tID è stato passato come parametro, un detached thread in
modo che possa rilasciare le sue risorse alla fine della sua esecuzione.
*/

int pthread_join(pthread_t thread, void **value_ptr);
/*  Mette il thread chiamante in attesa che il thread indicato con il primo parametro
termini. La locazione di memoria puntata da value_ptr può essere usata per
raccogliere un eventuale valore restituito dal thread in uscita. La funzione
restituisce un valore diverso da 0 in caso di errore.
*/

int pthread_exit(void *value_ptr);
/*  Termina il thread chiamante rendendo disponibile il valore puntato da value_ptr
per un eventuale pthread_join eseguito da un altro thread.
*/

int pthread_cancel(pthread_t thread);
//  Termina il thread indicato come parametro.

Crea un sito o un blog gratuito su WordPress.com.