C `getpid()`是否在进程的每个线程中返回不同的值?

C `getpid()`是否在进程的每个线程中返回不同的值?,c,pthreads,C,Pthreads,在Pthreads手册页中,提到 对getpid2的调用在每个线程中返回不同的值 在LinuxThreads部分 我已经创建了两个线程,并在其中打印了PID。但在这两种情况下,PID是相同的 int main () { //pid_t pid; pthread_t tid[2]; { printf("In main, PID : %d, PPID : %d\n", getpid(), getppid()); pthread_create(

在Pthreads手册页中,提到

对getpid2的调用在每个线程中返回不同的值

在LinuxThreads部分

我已经创建了两个线程,并在其中打印了PID。但在这两种情况下,PID是相同的

int main () 
{
    //pid_t pid;
    pthread_t tid[2];
    {
        printf("In main, PID : %d, PPID : %d\n", getpid(), getppid());
        pthread_create(&(tid[0]), NULL, &(f),NULL);
        pthread_create(&(tid[1]), NULL, &(g),NULL);
        pthread_join(tid[0], NULL);
        pthread_join(tid[1], NULL);
    }
    return 0;
}

void *g()
{
    printf("My PID in G : %d, PPID : %d\n", getpid(), getppid());
}

void* f()
{
    printf("My PID in F : %d, PPID : %d\n", getpid(), getppid());
}
下面是我得到的输出

主PID:5219,PPID:5214 我的PID在F:5219,PPID:5214 我的PID在G:5219,PPID:5214


我需要知道我是否误解了这里的任何东西。

有一条解释说

LinuxThreads实现与POSIX.1不同 以多种方式进行规范,包括:

对getpid2的调用在每个线程中返回不同的值

但是您很可能使用POSIX线程,而不是LinuxThreads。在POSIX中,线程属于一个进程,每个线程都有相同的PID