Библиотека включает в себя с ткилл - PullRequest
1 голос
/ 01 апреля 2019

Я пытался использовать tkill , чтобы убить поток с кодом c.

Какую библиотеку мне нужно включить, чтобы использовать эту функцию?

Работает на Linux Ubuntu

int main(int argc , char* argv[])
{
   tkill(123,9);

}

1 Ответ

1 голос
/ 01 апреля 2019

Вы нуждаетесь syscall(SYS_tkill, ThePid, TheSignal).

Пример:

#include <unistd.h>
#include <sys/syscall.h>
#include <signal.h>
int main()
{
    //kills self:
    pid_t tid = syscall(SYS_gettid);
    syscall(SYS_tkill,tid,SIGTERM); 
    return 0;
}

Glibc придерживается политики не включать оболочки для системных вызовов, не относящихся к POSIX.Они могут изменять его в текущих / будущих версиях, но использование общей функции syscall syscall-make всегда должно работать в Linux.

...