.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2002, 2011 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH rt_sigqueueinfo 2 "2 февраля 2025 г." "Linux man\-pages 6.12" .SH НАИМЕНОВАНИЕ rt_sigqueueinfo, rt_tgsigqueueinfo \- ставит сигнал и данные в очередь .SH БИБЛИОТЕКА Standard C library (\fIlibc\fP,\ \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP /* определения констант \fBSI_*\fP */ \fB#include \fP /* определения констант \fBSYS_*\fP */ \fB#include \fP .P \fBint syscall(SYS_rt_sigqueueinfo, pid_t \fP\fItgid\fP\fB,\fP \fB int \fP\fIsig\fP\fB, siginfo_t *\fP\fIinfo\fP\fB);\fP \fBint syscall(SYS_rt_tgsigqueueinfo, pid_t \fP\fItgid\fP\fB, pid_t \fP\fItid\fP\fB,\fP \fB int \fP\fIsig\fP\fB, siginfo_t *\fP\fIinfo\fP\fB);\fP .fi .P \fIЗамечание\fP: В glibc нет обёрточных функций для этих системных вызовов; смотрите ЗАМЕЧАНИЯ. .SH ОПИСАНИЕ Системные вызовы \fBrt_sigqueueinfo\fP() и \fBrt_tgsigqueueinfo\fP() предоставляют низкоуровневый интерфейс для отправки сигнала с данными процессу или нити. Приёмник сигнала может получить сопутствующие данные, установив обработчик сигнала с помощью \fBsigaction\fP(2) с флагом \fBSA_SIGINFO\fP. .P Данные системные вызовы не предназначены для использования непосредственно из приложения; они нужны для реализации библиотечных функций \fBsigqueue\fP(3) и \fBpthread_sigqueue\fP(3). .P The \fBrt_sigqueueinfo\fP() system call sends the signal \fIsig\fP to the thread group with the ID \fItgid\fP. (The term "thread group" is synonymous with "process", and \fItgid\fP corresponds to the traditional UNIX process ID.) The signal will be delivered to an arbitrary member of the thread group (i.e., one of the threads that is not currently blocking the signal). .P В аргументе \fIinfo\fP задаются сопутствующие сигналу данные. Этот аргумент является указателем на структуру типа \fIsiginfo_t\fP, описанную в \fBsigaction\fP(2) (и определённую в \fI\fP). Вызывающий должен заполнить следующие поля структуры: .TP \fIsi_code\fP Значением должен быть один из кодов \fBSI_*\fP, перечисленных в файле исходного кода ядра Linux \fIinclude/asm\-generic/siginfo.h\fP. посылается любому процессу, но не самому вызывающему, то накладываются следующие ограничения: .RS .IP \[bu] 3 Значение кода не может быть больше или равно нулю. В частности нельзя указывать \fBSI_USER\fP, используемый ядром для обозначения того, что сигнал послан \fBkill\fP(2), и нельзя указать \fBSI_KERNEL\fP, который используется для обозначения того, что сигнал сгенерирован ядром. .IP \[bu] .\" tkill(2) or Кодом не может быть (начиная с Linux 2.6.39) \fBSI_TKILL\fP, который используется ядром для обозначения того, что сигнал послан с помощью \fBtgkill\fP(2). .RE .TP \fIsi_pid\fP Должно хранить идентификатор процесса, обычно PID отправителя. .TP \fIsi_uid\fP Должно хранить идентификатор пользователя, обычно UID реального пользователя отправителя. .TP \fIsi_value\fP Это поле хранит пользовательские данные, сопровождающие сигнал. Подробности смотрите в описании последнего аргумента (\fIunion sigval\fP) функции \fBsigqueue\fP(3). .P Внутри ядра полю \fIsi_signo\fP устанавливается значение, переданное в \fIsig\fP, так что получатель сигнала может также получить его номер через это поле. .P Системный вызов \fBrt_tgsigqueueinfo\fP() похож на \fBrt_sigqueueinfo\fP(), но посылает сигнал и данные одной нити, указываемой комбинацией \fItgid\fP — идентификатором группы нитей — и \fItid\fP — нити из этой группы. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении эти системные вызовы возвращают 0. В случае ошибки возвращается \-1, а \fIerrno\fP устанавливается в соответствующее значение ошибки. .SH ОШИБКИ .TP \fBEAGAIN\fP Достигнуто ограничение на количество сигналов в очереди (подробней об этом смотрите в \fBsignal\fP(7)). .TP \fBEINVAL\fP Некорректное значение \fIsig\fP, \fItgid\fP или \fItid\fP. .TP \fBEPERM\fP Вызывающий не имеет прав для отправки сигнала по назначению. Требуемые права смотрите в \fBkill\fP(2). .TP \fBEPERM\fP В \fItgid\fP указан процесс, отличный от вызывающего и значение \fIinfo\->si_code\fP некорректно. .TP \fBESRCH\fP \fBrt_sigqueueinfo\fP(): Группа нитей \fItgid\fP не найдена. .P \fBrt_tgsigqueinfo\fP(): Нить \fItid\fP из \fItgid\fP не найдена. .SH СТАНДАРТЫ Linux. .SH ИСТОРИЯ .TP \fBrt_sigqueueinfo\fP() Linux 2.2. .TP \fBrt_tgsigqueueinfo\fP() Linux 2.6.31. .SH ПРИМЕЧАНИЯ Поскольку системные вызовы не предназначены для приложений, в glibc для них нет обёрточных функций. Используйте \fBsyscall\fP(2) в том маловероятном случае, если вы хотите вызывать их напрямую. .P Как и в случае с \fBkill\fP(2), может быть использован сигнал null (0), чтобы проверить, существует ли указанный процесс или нить. .SH "СМОТРИТЕ ТАКЖЕ" \fBkill\fP(2), \fBpidfd_send_signal\fP(2), \fBsigaction\fP(2), \fBsigprocmask\fP(2), \fBtgkill\fP(2), \fBpthread_sigqueue\fP(3), \fBsigqueue\fP(3), \fBsignal\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) aereiae , Azamat Hackimov , Dmitriy S. Seregin , Katrin Kutepova , Lockal , Yuri Kozlov , Баринов Владимир, Иван Павлов и Kirill Rekhov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .