.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2008 Michael Kerrisk .\" and Copyright 2003 Abhijit Menon-Sen .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" 2004-05-31, added tgkill, ahu, aeb .\" 2008-01-15 mtk -- rewrote DESCRIPTION .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH tkill 2 "4 декабря 2022 г." "Linux man\-pages 6.03" .SH ИМЯ tkill, tgkill \- посылает сигнал нити .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP /* определения констант \fBSIG*\fP */ \fB#include \fP /* определения констант \fBSYS_*\fP */ \fB#include \fP .PP \fB[[deprecated]] int syscall(SYS_tkill, pid_t \fP\fItid\fP\fB, int \fP\fIsig\fP\fB);\fP .PP \fB#include \fP .PP \fBint tgkill(pid_t \fP\fItgid\fP\fB, pid_t \fP\fItid\fP\fB, int \fP\fIsig\fP\fB);\fP .fi .PP \fINote\fP: glibc provides no wrapper for \fBtkill\fP(), necessitating the use of \fBsyscall\fP(2). .SH ОПИСАНИЕ \fBtgkill\fP() отправляет сигнал \fIsig\fP нити с ID \fItid\fP в группе нитей \fItgid\fP. Для сравнения, \fBkill\fP(2) может быть использована только для отправки сигнала процессу (т.е., группе нитей) как единому целому и сигнал будет доставлен произвольной нити внутри этого процесса. .PP .\" FIXME Maybe say something about the following: .\" http://sourceware.org/bugzilla/show_bug.cgi?id=12889 .\" .\" Quoting Rich Felker : .\" .\" There is a race condition in pthread_kill: it is possible that, .\" between the time pthread_kill reads the pid/tid from the target .\" thread descriptor and the time it makes the tgkill syscall, .\" the target thread terminates and the same tid gets assigned .\" to a new thread in the same process. .\" .\" (The tgkill syscall was designed to eliminate a similar race .\" condition in tkill, but it only succeeded in eliminating races .\" where the tid gets reused in a different process, and does not .\" help if the same tid gets assigned to a new thread in the .\" same process.) .\" .\" The only solution I can see is to introduce a mutex that ensures .\" that a thread cannot exit while pthread_kill is being called on it. .\" .\" Note that in most real-world situations, like almost all race .\" conditions, this one will be extremely rare. To make it .\" measurable, one could exhaust all but 1-2 available pid values, .\" possibly by lowering the max pid parameter in /proc, forcing .\" the same tid to be reused rapidly. Вызов \fBtkill\fP() \(em устаревший предшественник \fBtgkill\fP(). Он позволяет задавать только идентификатор нити\-получателя, что может привести к уведомлению не той нити, если нить завершила работу и её идентификатор используется повторно. Не используйте данный системный вызов. .PP Это вызовы интерфейса системного уровня, они предназначены для внутреннего использования в библиотеке нитей. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" On success, zero is returned. On error, \-1 is returned, and \fIerrno\fP is set to indicate the error. .SH ОШИБКИ .TP \fBEAGAIN\fP Достигнут ограничитель ресурса \fBRLIMIT_SIGPENDING\fP и \fIsig\fP содержит сигнал реального времени. .TP \fBEAGAIN\fP Недостаточное количество памяти ядра и \fIsig\fP содержит сигнал реального времени. .TP \fBEINVAL\fP Указан некорректный идентификатор нити, группы или сигнал. .TP \fBEPERM\fP Отказано в доступе. См. \fBkill\fP(2) для получения подробностей о необходимом доступе. .TP \fBESRCH\fP Не существует процесса с указанным идентификатором нити (и идентификатором группы). .SH ВЕРСИИ \fBtkill\fP() поддерживается начиная с Linux 2.4.19/2.5.4. \fBtgkill\fP() был добавлен в Linux 2.5.75. .PP Library support for \fBtgkill\fP() was added in glibc 2.30. .SH СТАНДАРТЫ Вызовы \fBtkill\fP() и \fBtgkill\fP() есть только в Linux, и они не должны использоваться в переносимых программах. .SH ЗАМЕЧАНИЯ См. описание \fBCLONE_THREAD\fP в \fBclone\fP(2) для пояснения по поводу групп нитей. .PP Before glibc 2.30, there was also no wrapper function for \fBtgkill\fP(). .SH "СМ. ТАКЖЕ" \fBclone\fP(2), \fBgettid\fP(2), \fBkill\fP(2), \fBrt_sigqueueinfo\fP(2) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .