/* 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.