无法编译调用tgkill的程序

问题描述 投票:3回答:3

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

c linux multithreading kill
3个回答
6
投票

来自tgkill()手册页:

Glibc不为这些系统调用提供包装器;使用系统调用(2)调用它们。


4
投票

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

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

3
投票

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

相反,你应该使用pthread_kill()

© www.soinside.com 2019 - 2024. All rights reserved.