.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 2006 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH mq_send 3 "20 июля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ mq_send, mq_timedsend \- отправляет сообщение в очередь сообщений .SH LIBRARY Real\-time library (\fIlibrt\fP, \fI\-lrt\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint mq_send(mqd_t \fP\fImqdes\fP\fB, const char \fP\fImsg_ptr\fP\fB[.\fP\fImsg_len\fP\fB],\fP \fB size_t \fP\fImsg_len\fP\fB, unsigned int \fP\fImsg_prio\fP\fB);\fP .PP \fB#include \fP \fB#include \fP .PP \fBint mq_timedsend(mqd_t \fP\fImqdes\fP\fB, const char \fP\fImsg_ptr\fP\fB[.\fP\fImsg_len\fP\fB],\fP \fB size_t \fP\fImsg_len\fP\fB, unsigned int \fP\fImsg_prio\fP\fB,\fP \fB const struct timespec *\fP\fIabs_timeout\fP\fB);\fP .fi .PP .ad l .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .PP \fBmq_timedsend\fP(): .nf _POSIX_C_SOURCE >= 200112L .fi .SH ОПИСАНИЕ Функция \fBmq_send\fP() добавляет сообщение, на которое указывает \fImsg_ptr\fP, в очередь сообщений, на которую ссылается дескриптор очереди сообщений \fImqdes\fP. В аргументе \fImsg_len\fP задаётся длина сообщения, на которое указывает \fImsg_ptr\fP; эта длина должна быть меньше или равно атрибуту очереди \fImq_msgsize\fP. Допускаются сообщения нулевой длины. .PP Значение аргумента \fImsg_prio\fP представляет собой неотрицательное целое, которым определяется приоритет этого сообщения. Сообщения помещаются в очередь в порядке уменьшения приоритета, самые новые сообщения с одинаковым приоритетом размещаются после старых с тем же приоритетом. Описание диапазона приоритета сообщения смотрите в \fBmq_overview\fP(7). .PP Если очередь сообщений заполнена (т. е., количество сообщений в очереди равно атрибуту очереди \fImq_maxmsg\fP), то по умолчанию \fBmq_send\fP() блокируется до появления места для записи сообщения, или пока вызов не будет прерван обработчиком сигнала. Если в описании очереди сообщений включён флаг \fBO_NONBLOCK\fP, то вместо этого вызов сразу завершается с ошибкой \fBEAGAIN\fP. .PP \fBmq_timedsend\fP() behaves just like \fBmq_send\fP(), except that if the queue is full and the \fBO_NONBLOCK\fP flag is not enabled for the message queue description, then \fIabs_timeout\fP points to a structure which specifies how long the call will block. This value is an absolute timeout in seconds and nanoseconds since the Epoch, 1970\-01\-01 00:00:00 +0000 (UTC), specified in a \fBtimespec\fP(3) structure. .PP Если очередь сообщений полна и вышло время ожидания на момент вызова, то \fBmq_timedsend\fP() сразу же завершается. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении \fBmq_send\fP() и \fBmq_timedsend\fP() возвращается ноль; при ошибке возвращается \-1, а в \fIerrno\fP помещается код ошибки. .SH ОШИБКИ .TP \fBEAGAIN\fP Очередь была полна и в описании очереди сообщений, на которое ссылается \fImqdes\fP, указан флаг \fBO_NONBLOCK\fP. .TP \fBEBADF\fP В \fImqdes\fP указан некорректный или не открытый на запись дескриптор. .TP \fBEINTR\fP Вызов был прерван обработчиком сигнала; смотрите \fBsignal\fP(7). .TP \fBEINVAL\fP Вызов бы заблокировался и в \fIabs_timeout\fP указано некорректное значение, так как \fItv_sec\fP меньше нуля или \fItv_nsec\fP меньше нуля или более 1000 миллионов. .TP \fBEMSGSIZE\fP \fImsg_len\fP больше, чем свойство очереди сообщений \fImq_msgsize\fP. .TP \fBETIMEDOUT\fP Истёк период ожидания в вызове, раньше появления возможности передачи сообщения. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBmq_send\fP(), \fBmq_timedsend\fP() T} Безвредность в нитях MT\-Safe .TE .sp 1 .SH ВЕРСИИ В Linux \fBmq_timedsend\fP() является системным вызовом, а \fBmq_send\fP() — библиотечной функцией, реализованной на основе этого системного вызова: .SH СТАНДАРТЫ POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001. .SH "СМ. ТАКЖЕ" \fBmq_close\fP(3), \fBmq_getattr\fP(3), \fBmq_notify\fP(3), \fBmq_open\fP(3), \fBmq_receive\fP(3), \fBmq_unlink\fP(3), \fBtimespec\fP(3), \fBmq_overview\fP(7), \fBtime\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан aereiae , Alexey , Azamat Hackimov , Dmitriy S. Seregin , Dmitry Bolkhovskikh , ITriskTI , Max Is , 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 .