/* * Criação de uma nova thread, com envio de valor de retorno (endereço * de variável global). */ #include #include #include int retorno; /* Variável global */ void* f_thread(void *v) { printf("Nova Thread irá retornar 256.\n"); retorno = 256; return (void*) &retorno; } int main() { pthread_t thr; int* retorno_thr; pthread_create(&thr, NULL, f_thread, NULL); pthread_join(thr, (void**) &retorno_thr); retorno = 57; /* Acesso à variável global por outra thread pode invalidar o processo */ printf("Valor de retorno: %d\n", *retorno_thr); return 0; }