Provided by:
manpages-pl-dev_20060617-3_all 
NAZWA
msgget - pobranie identyfikatora kolejki komunikatow
SK/LADNIA
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int msgget(key_t key, int msgflg);
OPIS
Funkcja zwraca identyfikator kolejki komunikatow skojarzonej z wartoci
parametru key. Jeli key ma warto IPC_PRIVATE lub jeli nie istnieje
kolejka o zadanym kluczu key, a w parametrze msgflg zostanie przekazany
znacznik IPC_CREAT (tzn. msgflg&IPC_CREAT bdzie rone od zera), to
zostanie utworzona nowa kolejka. Obecno znacznikow IPC_CREAT i
IPC_EXCL w parametrze msgflg ma to samo znaczenie, jeli chodzi o
istnienie kolejki komunikatow, co obecno znacznikow O_CREAT i O_EXCL w
argumencie mode funkcji systemowej open(2): tzn. funkcja msgget nie
wykona si prawidlowo, jeli msgflg bdzie zawiera jednoczenie oba
znaczniki IPC_CREAT i IPC_EXCL, za kolejka komunikatow skojarzona z key
ju bdzie istnie.
Podczas tworzenia, dziewi najmniej znaczcych bitow argumentu msgflg
definiuje prawa dostpu do kolejki. Prawa te maj one tak sam posta i
znaczenie (semantyk) jak parametr funkcji systemowych open(2) i
creat(2) okrelajcy prawa dostpu. (Prawa do uruchamiania nie s uywane.)
Jeli tworzona jest nowa kolejka komunikatow, wywolanie to w nastpujcy
sposob inicjalizuje struktur danych msqid_ds opisujc systemow kolejk
komunikatow:
msg_perm.cuid i msg_perm.uid przyjmuj warto efektywnego
identyfikatora wlaciciela procesu wywolujcego.
msg_perm.cgid i msg_perm.gid przyjmuj warto efektywnego
identyfikatora grupy procesu wywolujcego.
9 najmniej znaczcych bitow pola msg_perm.mode jest kopiowanych z
9 najmniej znaczcych bitow msgflg.
msg_qnum, msg_lspid, msg_lrpid, msg_stime i msg_rtime przyjmuj
warto 0.
msg_ctime jest ustawiane na aktualny czas.
msg_qbytes przyjmuje warto rown ograniczeniu systemowemu MSGMNB.
Jeli kolejka istnieje to prawa dostpu s weryfikowane i system sprawdza,
czy kolejka nie jest przeznaczona do usunicia.
WARTO ZWRACANA
W przypadku pomylnego zakoczenia, funkcja zwraca identyfikator kolejki
komunikatow (liczb nieujemn), a w przeciwnym przypadku zwraca -1 i
przypisuje zmiennej errno stosown warto.
B/LDY
W przypadku niepowodzenia, zmienna errno moe przyj jedn z nastpujcych
wartoci:
EACCES Kolejka skojarzona z key, istnieje, ale proces wywolujcy
funkcj nie ma wystarczajcych praw dostpu do tej kolejki.
EEXIST Kolejka skojarzona z wartoci key istnieje a msgflg zawiera
jednoczenie oba znaczniki IPC_CREAT i IPC_EXCL.
ENOENT Kolejka skojarzona z wartoci key nie istnieje, za msgflg nie
zawiera flagi IPC_CREAT.
ENOMEM Kolejka komunikatow powinna zosta utworzona, ale w systemie
brak jest pamici na utworzenie nowej struktury danych.
ENOSPC Kolejka komunikatow powinna zosta utworzona, ale
przekroczone zostaloby systemowe ograniczenie (MSGMNI) na
ilo istniejcych kolejek komunikatow.
UWAGI
IPC_PRIVATE nie jest znacznikiem tylko szczegoln wartoci typu key_t.
Jeli warto ta zostanie uyta jako parametr key, to system uwzgldni
jedynie 9 najniszych bitow parametru msgflg, stanowicych bity uprawnie,
i (w razie powodzenia) utworzy now kolejk.
Wywolania msgget dotycz nastpujce ograniczenia systemowe:
MSGMNI Maksymalna liczba kolejek komunikatow w systemie: zalene od
lokalnej strategii (policy dependent).
USTERKI
Wybrana nazwa, IPC_PRIVATE, prawdopodobnie nie jest najszczliwsza.
IPC_NEW w sposob bardziej przejrzysty odzwierciedlalo by rol tej
wartoci.
ZGODNE Z
SVr4, SVID. Do wersji 2.3.20, Linux zwracal EIDRM dla msgget na
kolejce komunikatow przeznaczonej do skasowania.
ZOBACZ TAKE
ftok(3), ipc(5), msgctl(2), msgsnd(2), msgrcv(2).
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.