无法编译调用tgkill的程序

时间:2011-03-21 07:39:50

标签: c linux multithreading kill

我正在尝试编写一个使用tgkill向特定线程发送信号的程序,但每当我使用gcc编译它时,我都会收到有关'tgkill'未定义引用的错误。我尝试使用-lpthread编译,但它没有帮助。我用Google搜索并用Google搜索,无法得出任何答案。如何编译?

3 个答案:

答案 0 :(得分:6)

来自tgkill()联机帮助页:

  

Glibc不提供包装   这些系统调用;打电话给他们   系统调用(2)。

答案 1 :(得分:4)

你可能想要使用这样的东西。

tgid=getpid();  
tid=gettid();  
syscall(SYS_tgkill, tgid, tid, signalname));

答案 2 :(得分:3)

如另一个答案所述,glibc不提供tkill()tgkill()的包装。

相反,您应该使用pthread_kill()