原型 :
#include <pthread.h>
pthread_t pthread_self(void);
说明 :
获取本进程自身的 ID。进程 ID 类型是 pthread_t ,这个类型一般为long long 型,8个字节。
测试代码 :
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void * thread_one ()
{
printf ( "thread_one pid is %lld \n " , getpid ());
printf ( "thread_one tid is %lld \n " , pthread_self ());
}
void * thread_two ()
{
printf ( "thread_two pid is %lld \n " , getpid ());
printf ( "thread_two tid is %lld \n " , pthread_self ());
}
int main ( int argc , char ** argv )
{
pid_t pid ;
pthread_t tid_one , tid_two ;
if (( pid = fork ()) == - 1 ) {
perror ( "fork" );
exit ( EXIT_FAILURE );
} else if ( pid == 0 ) {
pthread_create ( & tid_one , NULL , ( void * ) thread_one , NULL );
pthread_join ( tid_one , NULL );
} else {
pthread_create ( & tid_two , NULL , ( void * ) thread_two , NULL );
pthread_join ( tid_two , NULL );
}
wait ( NULL );
return 0;
}
编译 gcc -o pthread_self -lpthread pthread_self.c
运行结果:thread_one pid is 17480
thread_one tid is -1208779872
thread_two pid is 17479
thread_two tid is -1208779872