/* * Criação de uma nova thread, com envio de valor de retorno. * Suponha que a nova thread deve informar um valor inteiro para * a thread main. * * Nesta abordagem, a nova thread retorna um apontador para um inteiro * que foi alocado dinamicamente. */ #include #include #include void* f_thread(void *v) { int *retorno = (int *) malloc (sizeof(int)); *retorno = 256; printf("Nova Thread irá retornar um apontador para um inteiro que contém 256.\n"); return (void*) retorno; } int main() { pthread_t thr; int* retorno_thr; pthread_create(&thr, NULL, f_thread, NULL); pthread_join(thr, (void**) &retorno_thr); printf("Valor de retorno (apontador): %p\n", retorno_thr); printf("Valor de retorno (conteúdo): %d\n", *retorno_thr); free(retorno_thr); return 0; }