我正在尝试编写一个使用tgkill向特定线程发送信号的程序,但每当我使用gcc编译它时,我都会收到有关'tgkill'未定义引用的错误。我尝试使用-lpthread编译,但它没有帮助。我用Google搜索并用Google搜索,无法得出任何答案。我如何编译?
来自tgkill()
手册页:
Glibc不为这些系统调用提供包装器;使用系统调用(2)调用它们。
你可能想要使用这样的东西。
tgid=getpid();
tid=gettid();
syscall(SYS_tgkill, tgid, tid, signalname));
如另一个答案所述,glibc不提供tkill()
或tgkill()
的包装。
相反,你应该使用pthread_kill()
。