undefined reference to gettid



编程时遇到错误:

undefined reference to `gettid'

查找文档发现要使用 syscall(SYS_xxx)的形式调用才行:

 

NAME     
       gettid - 得到线程标识符

SYNOPSIS
       #include <sys/types.h>
       pid_t gettid(void);

DESCRIPTION     
        gettid() 返回调用者的线程 ID (TID).

        在一个单线程的进程当中, 返回的线程 ID (TID)与进程 ID (PID,getpid返回值)相同. 
        在一个多线程的进程当中,所有的线程有同样的PID,但是每一个都有一个唯一的TID。


RETURN VALUE 
       成功时,返回 TID。

ERRORS        
       This call is always successful.

VERSIONS        
       The gettid() system call first appeared on Linux in kernel 2.4.11.

CONFORMING TO       
       gettid() is linux-specific and should not be used in programs that are
       intended to be portable.

NOTES        
       Glibc(gnu发布的libc库,即c运行库)没有为这个系统调用提供一个封装。想调用它时使用 syscall(SYS_);
 这个函数调用的返回值TID,与POSIX TID的值不一样(例如pthread_self)。

 

在一个单线程的进程当中例子见:

http://blog.csdn.net/xsckernel/article/details/8543365

在一个多线程的进程当中例子见:

http://blog.csdn.net/xsckernel/article/details/8543377

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值