.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 Giorgio Ciucci (giorgio@crcc.it) .\" and Copyright 2004, 2005 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond .\" Modified Sun Feb 18 01:59:29 2001 by Andries E. Brouwer .\" Modified, 27 May 2004, Michael Kerrisk .\" Added notes on CAP_IPC_OWNER requirement .\" Modified, 17 Jun 2004, Michael Kerrisk .\" Added notes on CAP_SYS_ADMIN requirement for IPC_SET and IPC_RMID .\" Modified, 11 Nov 2004, Michael Kerrisk .\" Language and formatting clean-ups .\" Added msqid_ds and ipc_perm structure definitions .\" 2005-08-02, mtk: Added IPC_INFO, MSG_INFO, MSG_STAT descriptions .\" 2018-03-20, dbueso: Added MSG_STAT_ANY description. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH msgctl 2 "30 marca 2023 r." "Linux man\-pages 6.05.01" .SH NAZWA msgctl \- sterowanie kolejkami komunikatów Systemu V .SH BIBLIOTEKA Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP) .SH SKŁADNIA .nf \fB#include \fP .PP \fBint msgctl(int \fP\fImsqid\fP\fB, int \fP\fIcmd\fP\fB, struct msqid_ds *\fP\fIbuf\fP\fB);\fP .fi .SH OPIS \fBmsgctl\fP() wykonuje operację określoną przez parametr \fIcmd\fP na kolejce komunikatów Systemu\ V o identyfikatorze \fImsqid\fP. .PP Struktura danych \fImsqid_ds\fP jest zdefiniowana w \fI\fP następująco: .PP .in +4n .EX struct msqid_ds { struct ipc_perm msg_perm; /* Ownership and permissions */ time_t msg_stime; /* Time of last msgsnd(2) */ time_t msg_rtime; /* Time of last msgrcv(2) */ time_t msg_ctime; /* Time of creation or last modification by msgctl() */ unsigned long msg_cbytes; /* # of bytes in queue */ msgqnum_t msg_qnum; /* # number of messages in queue */ msglen_t msg_qbytes; /* Maximum # of bytes in queue */ pid_t msg_lspid; /* PID of last msgsnd(2) */ pid_t msg_lrpid; /* PID of last msgrcv(2) */ }; .EE .in .PP The fields of the \fImsqid_ds\fP structure are as follows: .TP 11 \fImsg_perm\fP This is an \fIipc_perm\fP structure (see below) that specifies the access permissions on the message queue. .TP \fImsg_stime\fP Czas ostatniego wykonania funkcji systemowej \fBmsgsnd\fP(2). .TP \fImsg_rtime\fP Czas ostatniego wykonania funkcji systemowej \fBmsgrcv\fP(2). .TP \fImsg_ctime\fP Time of creation of queue or time of last \fBmsgctl\fP() \fBIPC_SET\fP operation. .TP \fImsg_cbytes\fP Number of bytes in all messages currently on the message queue. This is a nonstandard Linux extension that is not specified in POSIX. .TP \fImsg_qnum\fP Liczba komunikatów znajdujących się aktualnie w kolejce. .TP \fImsg_qbytes\fP Maksymalna liczba bajtów tekstu komunikatu, na jaką pozwala kolejka. .TP \fImsg_lspid\fP Identyfikator procesu, który ostatni wykonał funkcję systemową \fBmsgsnd\fP(2). .TP \fImsg_lrpid\fP identyfikator procesu, który ostatni wykonał funkcję systemową \fBmsgrcv\fP(2). .PP Struktura \fIipc_perm\fP jest zdefiniowana następująco (wyróżnione pola można ustawić za pomocą \fBIPC_SET\fP): .PP .in +4n .EX struct ipc_perm { key_t __key; /* Klucz podany w msgget(2) */ uid_t \fBuid\fP; /* Efektywny UID właściciela */ gid_t \fBgid\fP; /* Efektywny GID właściciela */ uid_t cuid; /* Efektywny UID twórcy */ gid_t cgid; /* Efektywny GID twórcy */ unsigned short \fBmode\fP; /* Uprawnienia */ unsigned short __seq; /* Numer sekwencji */ }; .EE .in .PP The least significant 9 bits of the \fImode\fP field of the \fIipc_perm\fP structure define the access permissions for the message queue. The permission bits are as follows: .TS l l. 0400 Read by user 0200 Write by user 0040 Read by group 0020 Write by group 0004 Read by others 0002 Write by others .TE .PP Bits 0100, 0010, and 0001 (the execute bits) are unused by the system. .PP Poprawne wartości parametru \fIcmd\fP to: .TP \fBIPC_STAT\fP Kopiowanie informacji ze struktury kontrolnej kolejki komunikatów skojarzonej z \fImsqid\fP do struktury wskazywanej przez \fIbuf\fP. Wywołujący musi mieć prawo odczytu kolejki komunikatów. .TP \fBIPC_SET\fP Zapis wartości niektórych pól struktury \fBmsqid_ds\fP wskazywanej przez parametr \fIbuf\fP do struktury kontrolnej kolejki komunikatów. Pole \fBmsg_ctime\fP zostanie automatycznie uaktualnione. .IP Zaktualizowane mogą również zostać następujące pola tej struktury: \fImsg_qbytes\fP, \fImsg_perm.uid\fP, \fImsg_perm.gid\fP i (przynajmniej 9 najmniej znaczących bitów z) \fImsg_perm.mode\fP. .IP Efektywny identyfikator użytkownika musi wskazywać na właściciela (\fImsg_perm.uid\fP) lub na twórcę (\fImsg_perm.uid\fP) kolejki komunikatów albo proces wywołujący musi być uprzywilejowany. Odpowiednie uprawnienia (Linux: atrybut \fBCAP_SYS_RESOURCE\fP) są również wymagane, aby nadać polu \fBmsg_qbytes\fP wartość większą niż parametr systemowy \fBMSGMNB\fP. .TP \fBIPC_RMID\fP Usuwa natychmiast kolejkę komunikatów. Wznawia wszystkie procesy oczekujące na zapis lub odczyt z kolejki (wywołania, które się wykonywały zasygnalizują błąd i ustawią zmienną \fBerrno\fP na \fBEIDRM\fP). Proces wywołujący tę funkcję musi mieć odpowiednie uprawnienia albo jego efektywny identyfikator użytkownika musi wskazywać na twórcę lub na właściciela kolejki komunikatów. Trzeci argument do \fBmsgctl\fP() jest w tym wypadku ignorowany. .TP \fBIPC_INFO\fP (specyficzne dla Linuksa) Zwraca w strukturze, na którą wskazuje \fIbuf\fP, informacje o systemowych ograniczeniach i parametrach kolejek komunikatów. Struktura jest typu \fImsginfo\fP (dlatego wymagane jest rzutowanie) i jest zdefiniowana w \fI\fP, pod warunkiem, że zdefiniowano również makro \fB_GNU_SOURCE\fP: .IP .in +4n .EX struct msginfo { int msgpool; /* Rozmiar w kibibajtach puli buforów używanej do przechowywania danych komunikatu; nieużywane przez jądro */ int msgmap; /* Maksymalna liczba of entries in message map; nieużywane przez jądro */ int msgmax; /* Maksymalna liczba bajtów, które można zapisać w pojedynczej wiadomości */ int msgmnb; /* Maksymalna liczba bajtów, które można zapisać do kolejki; używane do inicjowania msg_qbytes podczas tworzenia kolejki (msgget(2)) */ int msgmni; /* Maksymalna liczba kolejek komunikatów */ int msgssz; /* Rozmiar segmentu komunikatu; nieużywane przez jądro */ int msgtql; /* Maksymalna liczba komunikatów we wszystkich kolejkach w systemie; nieużywane przez jądro */ unsigned short msgseg; /* Maksymalna liczba segmentów; nieużywane przez jądro */ }; .EE .in .IP Ustawienia \fImsgmni\fP, \fImsgmax\fP oraz \fImsgmnb\fP można zmienić za pomocą plików \fI/proc\fP o nazwach takich samych, jak nazwy tych ustawień; szczegóły można znaleźć w podręczniku \fBproc\fP(5). .TP \fBMSG_INFO\fP (specyficzne dla Linuksa) Zwraca strukturę \fImsginfo\fP zawierającą te same informacje co w przypadku \fBIPC_INFO\fP, z tym wyjątkiem, że w następujących polach zwracane są informacje o zasobach systemowych wykorzystywanych przez kolejki komunikatów: pole \fImsgpool\fP zwraca liczbę kolejek komunikatów istniejących obecnie w systemie; pole \fImsgmap\fP zwraca całkowitą liczbę komunikatów we wszystkich kolejkach w systemie, a pole \fImsgtql\fP zwraca całkowitą liczbę bajtów we wszystkich komunikatach z wszystkich kolejek w systemie. .TP \fBMSG_STAT\fP (specyficzne dla Linuksa) Zwraca strukturę \fImsqid_ds\fP, taką jak dla \fBIPC_STAT\fP. Jednakże parametr \fImsqid\fP nie jest identyfikatorem kolejki, ale indeksem wewnętrznej tablicy jądra przechowującej informacje o wszystkich kolejkach w systemie. .TP \fBMSG_STAT_ANY\fP (specyficzne dla Linuksa, od Linuks 4.17) Return a \fImsqid_ds\fP structure as for \fBMSG_STAT\fP. However, \fImsg_perm.mode\fP is not checked for read access for \fImsqid\fP meaning that any user can employ this operation (just as any user may read \fI/proc/sysvipc/msg\fP to obtain the same information). .SH "WARTOŚĆ ZWRACANA" W razie powodzenia \fBIPC_STAT\fP, \fBIPC_SET\fP i \fBIPC_RMID\fP zwracają 0. Pomyślnie zakończone operacje \fBIPC_INFO\fP i \fBMSG_INFO\fP zwracają indeks najwyższego używanego wpisu w wewnętrznej tablicy jądra przechowującej informacje o wszystkich kolejkach komunikatów. (Informacji tej można użyć w operacjach \fBMSG_STAT\fP lub \fBMSG_STAT_ANY\fP, aby otrzymać informacje o wszystkich kolejkach w systemie). Pomyślnie zakończona operacja \fBMSG_STAT\fP lub \fBMSG_STAT_ANY\fP zwraca identyfikator kolejki o indeksie przekazanym w \fImsqid\fP. .PP On failure, \-1 is returned and \fIerrno\fP is set to indicate the error. .SH BŁĘDY .TP \fBEACCES\fP The argument \fIcmd\fP is equal to \fBIPC_STAT\fP or \fBMSG_STAT\fP, but the calling process does not have read permission on the message queue \fImsqid\fP, and does not have the \fBCAP_IPC_OWNER\fP capability in the user namespace that governs its IPC namespace. .TP \fBEFAULT\fP Parametr \fIcmd\fP ma wartość \fBIPC_SET\fP lub \fBIPC_STAT\fP, ale \fIbuf\fP wskazuje na niedostępny obszar pamięci. .TP \fBEIDRM\fP Kolejka komunikatów została usunięta. .TP \fBEINVAL\fP Niepoprawna wartość parametru \fIcmd\fP lub \fImsqid\fP. Albo: w przypadku operacji \fBMSG_STAT\fP wartość indeksu podana w parametrze \fImsqid\fP odwoływała się do obecnie nieużywanego elementu tablicy. .TP \fBEPERM\fP Parametr \fIcmd\fP jest równy \fBIPC_SET\fP lub \fBIPC_RMID\fP, ale proces wywołujący funkcję nie jest twórcą (określonym w \fImsg_perm.cuid\fP) ani właścicielem (określonym w \fImsg_perm.uid\fP) kolejki komunikatów, a wywołujący nie jest uprzywilejowany (Linux: nie ma ustawionego atrybutu \fBCAP_SYS_ADMIN\fP). .TP \fBEPERM\fP Podjęto próbę (\fBIPC_SET\fP) zwiększenia \fImsg_qbytes\fP ponad parametr systemowy \fBMSGMNB\fP, lecz wywołujący nie jest uprzywilejowany (Linux: nie posiada możliwości \fBCAP_SYS_RESOURCE\fP). .SH STANDARDY POSIX.1\-2008. .SH HISTORIA .\" SVID does not document the EIDRM error condition. POSIX.1\-2001, SVr4. .PP Niektóre pola struktury \fIstruct msqid_ds\fP były w Linuksie 2.2 typu \fIshort\fP, ale stały się typu \fIlong\fP w Linuksie 2.4. Aby to wykorzystać, powinna wystarczyć rekompilacja pod glibc\-2.1.91 lub nowszą. (Jądro rozróżnia stare wywołania od nowych za pomocą znacznika \fBIPC_64\fP w \fIcmd\fP). .SH UWAGI Operacje \fBIPC_INFO\fP, \fBMSG_STAT\fP oraz \fBMSG_INFO\fP są używane przez program \fBipcs\fP(1) w celu dostarczenia informacji o zajmowanych zasobach. W przyszłości operacje te mogą zostać zmodyfikowane lub przeniesione do interfejsu systemu plików \fI/proc\fP. .SH "ZOBACZ TAKŻE" \fBmsgget\fP(2), \fBmsgrcv\fP(2), \fBmsgsnd\fP(2), \fBcapabilities\fP(7), \fBmq_overview\fP(7), \fBsysvipc\fP(7) .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Rafał Lewczuk , Andrzej Krzysztofowicz , Robert Luberda i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .