воскресенье, 17 июня 2012 г.

TID

В интернете свободно доступна интересная и полезная книга о программировании в Линуксе: Advanced Linux Programming. К несчастью, некоторые темы устарели. Одна из них - 4.5 GNU/Linux Thread Implementation. В книге говорится, что треды GNU/Linux реализованы как процессы. Следующий код должен это подтвердить, но он этого не делает:

#include <pthread.h>
#include <stdio.h>
#include <unistd.h>

void *thread_fun(void *arg)
{
    fprintf(stderr, "child thread pid is %d\n", (int)getpid());
    while(1);
    return NULL;
}

int main(void)
{
    pthread_t thread;
    fprintf(stderr, "main thread pid is %d\n", (int)getpid());
    pthread_create(&thread, NULL, &thread_fun, NULL);
    while(1);
    return 0;
}