/* cc -o pthreads pthreads.c -lpthread */ #include #include void *thread_fn(void *p) { int *arg = p; fprintf(stderr, "Hello from thread %d\n", *arg); return NULL; } int main(void) { const int N = 10; pthread_t threads[N]; int args[N]; int i; for (i = 0; i < N; i++) { args[i] = i; if (pthread_create(threads + i, NULL, thread_fn, args + i) != 0) { return 1; } } // ... for (i = 0; i < N; i++) { if (pthread_join(threads[i], NULL) != 0) { return 2; } } return 0; }