Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       tkill, tgkill - посылает сигнал нити

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <signal.h>           /* определения констант SIG* */
       #include <sys/syscall.h>      /* определения констант SYS_* */
       #include <unistd.h>

       [[deprecated]] int syscall(SYS_tkill, pid_t tid, int sig);

       #include <signal.h>

       int tgkill(pid_t tgid, pid_t tid, int sig);

       Note: glibc provides no wrapper for tkill(), necessitating the use of syscall(2).

ОПИСАНИЕ

       tgkill()  отправляет  сигнал  sig  нити  с  ID tid в группе нитей tgid. Для сравнения, kill(2) может быть
       использована только для отправки сигнала процессу (т.е., группе нитей) как единому целому и сигнал  будет
       доставлен произвольной нити внутри этого процесса.

       Вызов   tkill()  —  устаревший  предшественник  tgkill().  Он  позволяет  задавать  только  идентификатор
       нити-получателя, что может привести  к  уведомлению  не  той  нити,  если  нить  завершила  работу  и  её
       идентификатор используется повторно. Не используйте данный системный вызов.

       Это  вызовы  интерфейса  системного  уровня, они предназначены для внутреннего использования в библиотеке
       нитей.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       On success, zero is returned.  On error, -1 is returned, and errno is set to indicate the error.

ОШИБКИ

       EAGAIN Достигнут ограничитель ресурса RLIMIT_SIGPENDING и sig содержит сигнал реального времени.

       EAGAIN Недостаточное количество памяти ядра и sig содержит сигнал реального времени.

       EINVAL Указан некорректный идентификатор нити, группы или сигнал.

       EPERM  Отказано в доступе. См. kill(2) для получения подробностей о необходимом доступе.

       ESRCH  Не существует процесса с указанным идентификатором нити (и идентификатором группы).

ВЕРСИИ

       tkill() поддерживается начиная с Linux 2.4.19/2.5.4. tgkill() был добавлен в Linux 2.5.75.

       Library support for tgkill()  was added in glibc 2.30.

СТАНДАРТЫ

       Вызовы tkill() и tgkill() есть только в Linux, и они не должны использоваться в переносимых программах.

ЗАМЕЧАНИЯ

       См. описание CLONE_THREAD в clone(2) для пояснения по поводу групп нитей.

       Before glibc 2.30, there was also no wrapper function for tgkill().

СМ. ТАКЖЕ

       clone(2), gettid(2), kill(2), rt_sigqueueinfo(2)

ПЕРЕВОД

       Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>,  Dmitry
       Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
       или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо
       на man-pages-ru-talks@lists.sourceforge.net.

Linux man-pages 6.03                            4 декабря 2022 г.                                       tkill(2)