关闭

undefined reference to gettid() 错误

标签: 多线程linuxgettid
559人阅读 评论(0) 收藏 举报
分类:

《Linux多线程服务端编程》建议使用gettid(2)系统调用的返回值作为线程id。

写了个测试:

void * threadFunc(void *arg)
{
    pid_t tid = gettid();
    //...
}

编译出现错误:undefined reference to gettid()

网上查了一下,需要使用syscall的方式进行调用,于是简单封装了一蛤

pid_t gettid(void)
{
    return syscall(__NR_gettid);
}

参考:
1.http://blog.csdn.net/delphiwcdj/article/details/8476547
2.http://stackoverflow.com/questions/9565177/call-gettid-witin-glibc
3.http://blog.csdn.net/xsckernel/article/details/8543377

1
0
查看评论

Linux下获取线程TID的方法——gettid()

2013-01-07 wcdj 如何获取进程的PID(process ID)? 可以使用: #include pid_t getpid(void);通过查看头文件说明,可以得到更详细的信息: find /usr/include -name unistd.h /usr/includ...
  • delphiwcdj
  • delphiwcdj
  • 2013-01-07 14:20
  • 32967

gettid 和 pthread_self 的区别

gettid gettid() is a system call. As for as I know there is no glibc wrapper for gettid. You need to invoke gettid() using syscall(). The following...
  • hp_truth
  • hp_truth
  • 2015-01-05 16:39
  • 3977

gettid()获取线程ID测试程序

1、第一种方法 #include "stdio.h" #include "stdlib.h" #include "unistd.h" #include "pthread.h" #include #define get...
  • zhuliting
  • zhuliting
  • 2010-11-16 15:30
  • 13900

间接系统调用syscall(SYS_gettid)

在linux下每一个进程都一个进程id,类型pid_t,可以由getpid()获取。POSIX线程也有线程id,类型pthread_t,可以由pthread_self()获取,线程id由线程库维护。但是各个进程独立,所以会有不同进程中线程号相同节的情况。那么这样就会存在一个问题,我的进程p1中的线程...
  • u013246898
  • u013246898
  • 2016-10-26 13:15
  • 1708

gettid和pthread_self区别

1 线程ID获取方法 linux下获取线程有两种方法: 1)gettid或者类似gettid的方法   2)直接调用pthread_self() gettid 获取的是内核中线程ID,而pthread_self 是posix描述的线程ID。 通过执行man手册,我们也能发现他们的区别:...
  • rsyp2008
  • rsyp2008
  • 2015-04-20 15:10
  • 5611

获取线程标识函数gettid和pthread_self的区别

最近阅读源码时发现了有两种获取线程ID的函数:pthread_self和gettid,前者在Richard的APUE一书中有详尽介绍,但后者函数相对陌生,经过一番查阅后现将这两者在此总结一番。 pthread_self: pthread_self是POSIX实现的,它返回一个由pthre...
  • limo120621
  • limo120621
  • 2017-06-20 19:36
  • 375

gettid和pthread_self区别

1 线程ID获取方法 linux下获取线程有两种方法: 1)gettid或者类似gettid的方法   2)直接调用pthread_self() gettid 获取的是内核中线程ID,而pthread_self 是posix描述的线程ID。 通过执行man手册,我们也能发现他们的...
  • zhubosa
  • zhubosa
  • 2017-03-05 11:32
  • 410

linux的pthread_self与gettid的返回值和开销的区别

pthread_self()是POSIX的实现,它的返回值是pthread_t,pthread_t在linux中实际是无符号长整型,即unsigned long。 gettid是系统调用,它的返回值是pid_t,在linux上是一个无符号整型。 测试机为Intel i7 860 2.8GHz,八...
  • littlefang
  • littlefang
  • 2012-05-18 12:25
  • 14474

undefined reference to gettid

http://topic.csdn.net/u/20100816/18/36ba57a9-6c89-42be-8f93-a37647538b55.html    因为gettid()是Linux他自己的,因此把里面实现函数拷贝出来,写到自己的程序里即可。头文件有 实现代...
  • diy534
  • diy534
  • 2011-12-16 16:33
  • 5551

undefined reference to gettid

编程时遇到错误: undefined reference to `gettid' 查找文档发现要使用 syscall(SYS_xxx)的形式调用才行:   NAME         ...
  • XscKernel
  • XscKernel
  • 2013-01-25 20:35
  • 3253
    个人资料
    • 访问:645766次
    • 积分:12460
    • 等级:
    • 排名:第1363名
    • 原创:587篇
    • 转载:83篇
    • 译文:1篇
    • 评论:49条
    博客专栏
    最新评论