.\" -*- 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 "30 марта 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ rt_sigqueueinfo, rt_tgsigqueueinfo \- ставит сигнал и данные в очередь .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP /* определения констант \fBSI_*\fP */ \fB#include \fP /* определения констант \fBSYS_*\fP */ \fB#include \fP .PP \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 .PP \fIЗамечание\fP: В glibc нет обёрточных функций для этих системных вызовов; смотрите ЗАМЕЧАНИЯ. .SH ОПИСАНИЕ Системные вызовы \fBrt_sigqueueinfo\fP() и \fBrt_tgsigqueueinfo\fP() предоставляют низкоуровневый интерфейс для отправки сигнала с данными процессу или нити. Приёмник сигнала может получить сопутствующие данные, установив обработчик сигнала с помощью \fBsigaction\fP(2) с флагом \fBSA_SIGINFO\fP. .PP Данные системные вызовы не предназначены для использования непосредственно из приложения; они нужны для реализации библиотечных функций \fBsigqueue\fP(3) и \fBpthread_sigqueue\fP(3). .PP Системный вызов \fBrt_sigqueueinfo\fP() отправляет сигнал \fIsig\fP группе нитей с идентификатором \fItgid\fP (термин «группа нитей» является синонимом «процесс», а \fItid\fP соответствует обычному идентификатору процесса UNIX). Сигнал будет доставлен произвольному члену группы нитей (т. е., одной из нитей, которая в этот момент не блокирует сигнал). .PP В аргументе \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). .PP Внутри ядра полю \fIsi_signo\fP устанавливается значение, переданное в \fIsig\fP, так что получатель сигнала может также получить его номер через это поле. .PP Системный вызов \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 не найдена. .PP \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) в том маловероятном случае, если вы хотите вызывать их напрямую. .PP Как и в случае с \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 , Баринов Владимир и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .