Imported tab->space correction by redhat
[infodrom/manpages-de] / man5 / ipc.5
1 .\" Copyright 1993 Giorgio Ciucci (giorgio@crcc.it)
2 .\"
3 .\" Permission is granted to make and distribute verbatim copies of this
4 .\" manual provided the copyright notice and this permission notice are
5 .\" preserved on all copies.
6 .\"
7 .\" Permission is granted to copy and distribute modified versions of this
8 .\" manual under the conditions for verbatim copying, provided that the
9 .\" entire resulting derived work is distributed under the terms of a
10 .\" permission notice identical to this one
11 .\" 
12 .\" Since the Linux kernel and libraries are constantly changing, this
13 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
14 .\" responsibility for errors or omissions, or for damages resulting from
15 .\" the use of the information contained herein.  The author(s) may not
16 .\" have taken the same level of care in the production of this manual,
17 .\" which is licensed free of charge, as they might when working
18 .\" professionally.
19 .\" 
20 .\" Formatted or processed versions of this manual, if unaccompanied by
21 .\" the source, must acknowledge the copyright and authors of this work.
22 .\" Translated into German by Mike Fengler (mike@krt3.krt-soft.de)
23 .\"
24 .TH IPC 5 "27. Dezember 1998" "Linux 0.99.13" "Dateiformate"
25 .SH BEZEICHNUNG
26 ipc \- System V Mechanismen für Kommunikation zwischen Prozessen
27 .SH "ÜBERSICHT"
28 .nf
29 .B
30 # include <sys/types.h>
31 .B
32 # include <sys/ipc.h>
33 .B
34 # include <sys/msg.h>
35 .B
36 # include <sys/sem.h>
37 .B
38 # include <sys/shm.h>
39 .SH BESCHREIBUNG
40 Diese Handbuchseite bezieht sich auf die System V Mechanismen für 
41 Kommunikation zwischen Prozessen, wie sie in Linux verwirklicht
42 wurden: message queues, semaphore sets und shared memory segments.
43 (Zumindest einmal soll denn doch eine Übersetzung versucht werden:
44 Nachrichten - Warteschlangen, Semaphoren (Sperr/Frei - Vermerke)
45 und gemeinsam genutzte Speicherbereiche. Oh Himmel. A.d.Üb.)
46 Im Folgenden bedeutet das Wort 
47 .B Ressource
48 eine konkrete Erscheinung (instantiation) einer dieser Mechanismen.
49 .SS Ressource Zugriffsrechte
50 Für jede Ressource verwaltet das System in einer allgemeinen
51 Struktur des Typs
52 .BR "struct ipc_perm"
53 die Informationen, die zur Bestimmung der Rechte auf eine ipc - 
54 Operation notwendig sind.
55 Die
56 .B ipc_perm
57 Structur, definiert von der
58 .I <sys/ipc.h>
59 system header Datei, enthält folgende Elemente:
60 .sp
61 .B
62         ushort cuid;    
63 /* Benutzerkennung des Erzeugers */
64 .br
65 .B
66         ushort cgid;    
67 /* Gruppenkennung des Erzeugers */
68 .br
69 .B
70         ushort uid;
71 /* Kennung des Eigentümers */
72 .br
73 .B
74         ushort gid;
75 /* Gruppenkennung des Eigentümers */
76 .br
77 .B
78         ushort mode;
79 /* Lese/Schreib - Rechte */
80 .PP
81 Das
82 .B mode
83 Element der
84 .B ipc_perm
85 Struktur bestimmt mit seinen 9 niedrigstwertigen Bits die
86 Zugriffsrechte auf die Ressource für einen Prozess, der einen
87 ipc-Systemaufruf ausführt.  Die Rechte werden wie folgt interpretiert:
88 .sp
89 .nf
90         0400    Eigentümer darf lesen
91         0200    Eigentümer darf schreiben
92 .sp .5
93         0040    Gruppe darf lesen
94         0020    Gruppe darf schreiben
95 .sp .5
96         0004    Andere dürfen lesen
97         0002    Andere dürfen schreiben
98 .fi
99 .PP
100 Bits 0100, 0010 und 0001 (die Ausführungsbits) werden nicht benutzt.
101 Darüber hinaus bedeutet "schreiben" eigentlich "verändern", soweit
102 es sich auf ein semaphore set bezieht.
103 .PP
104 Die selbe system header Datei definiert auch folgende symbolische
105 Konstanten:
106 .TP 14
107 .B IPC_CREAT
108 Eintrag erzeugen, wenn Schlüssel nicht vorhanden.
109 .TP
110 .B IPC_EXCL
111 Mißerfolg, wenn Schlüssel vorhanden.
112 .TP
113 .B IPC_NOWAIT
114 Fehlermeldung, wenn die Anforderung warten muss.
115 .TP
116 .B IPC_PRIVATE
117 Privater Schlüssel.
118 .TP
119 .B IPC_RMID
120 Ressource beseitigen.
121 .TP
122 .B IPC_SET
123 Setzen von Optionen der Ressource.
124 .TP
125 .B IPC_STAT
126 Ansehen der Optionen der Ressource.
127 .PP
128 Beachten Sie, dass
129 .B IPC_PRIVATE
130 vom Typ
131 .B key_t
132 ist. Alle anderen symbolischen Konstanten sind Flag - Felder, die
133 mit Variablen des Typs
134 .B int
135 ODER - verknüpft werden können.
136 .SS Message Queues
137 Eine message queue wird eindeutig identifiziert über einen
138 positiven Integerwert
139 .RI "(ihre " msqid )
140 und ist mit einer Datenstruktur verbunden, die vom Typ
141 .BR "struct msquid_ds" 
142 ist, definiert in
143 .IR <sys/msg.h> .
144 Diese hat folgende Elemente:
145 .sp
146 .B
147         struct ipc_perm msg_perm;
148 .br
149 .B
150         ushort msg_qnum;        
151 /* Anzahl wartende messages */
152 .br
153 .B
154         ushort msg_qbytes;      
155 /* Bytes max in einer queue */
156 .br
157 .B
158         ushort msg_lspid;       
159 /* pid des letzten msgsnd */
160 .br
161 .B
162         ushort msg_lrpid;       
163 /* pid des letzten msgrcv */
164 .br
165 .B
166         time_t msg_stime;       
167 /* Zeit des letzten msgsnd */
168 .br
169 .B
170         time_t msg_rtime;       
171 /* Zeit des letzten  msgrcv */
172 .br
173 .B
174         time_t msg_ctime;       
175 /* Zeit der letzten Änderung */
176 .TP 11
177 .B msg_perm
178 .B ipc_perm
179 Struktur, die die Zugriffsrechte auf die message queue angibt.
180 .TP
181 .B msg_qnum
182 derzeitige Anzahl der Messages in der Queue.
183 .TP
184 .B msg_qbytes
185 Maximale Anzahl an Bytes Messagetext, die in der Message Queue
186 erlaubt sind.
187 .TP
188 .B msg_lspid
189 ID des Prozesses, der zuletzt den
190 .B msgsnd
191 Systemaufruf getätigt hat.
192 .TP
193 .B msg_lrpid
194 ID des Prozesses, der zuletzt den
195 .B msgrcv
196 Systemaufruf getätigt hat.
197 .TP
198 .B msg_stime
199 Zeitpunkt des letzten
200 .B msgsnd
201 Systemaufrufs.
202 .TP
203 .B msg_rtime
204 Zeitpunkt des letzten
205 .B msgcv
206 Systemaufrufs.
207 .TP
208 .B msg_ctime
209 Zeitpunkt des letzten Systemaufrufs, bei dem ein Element der
210 .B msqid_ds
211 Struktur geändert wurde.
212 .SS Semaphore Sets
213 Ein Semaphore Set wird eindeutig identifiziert durch einen
214 positiven Integerwert
215 .RI "(seine " semid )
216 und ist mit einer Datenstruktur vom Typ
217 .BR "struct semid_ds" ,
218 verbunden, definiert in
219 .IR <sys/sem.h> ,
220 die folgende Elemente enthält:
221 .sp
222 .B
223         struct ipc_perm sem_perm;
224 .br
225 .B
226         time_t sem_otime;       
227 /* Zeit des letzten Aufrufs */
228 .br
229 .B
230         time_t sem_ctime;       
231 /* Zeit der letzten Änderung */
232 .br
233 .B
234         ushort sem_nsems;       
235 /* Anzahl Semaphoren im Set */
236 .TP 11
237 .B sem_perm
238 .B ipc_perm
239 Struktur für die Zugriffsrechte auf das Semphorenset.
240 .TP
241 .B sem_otime
242 Zeitpunkt des letzten
243 .B semop
244 Systemaufrufs.
245 .TP
246 .B sem_ctime
247 Zeitpunkt des letzten
248 .B semctl
249 Systemaufrufs, der einen Eintrag o.g. Struktur oder eine zum Set 
250 gehörende Semaphore geändert hat.
251 .TP
252 .B sem_nsems
253 Anzahl der Semaphoren im Set. Jede Semaphore des Sets wird 
254 repräsentiert durch einen nicht negativen Integerwert zwischen
255 .B 0
256 und
257 .BR sem_nsems\-1 .
258 .PP
259 Eine Semaphore ist eine Datenstruktur des Typs
260 .B "struct sem"
261 mit folgenden Einträgen:
262 .sp
263 .B
264         ushort semval;  
265 /* Semaphorenwert */
266 .br
267 .B
268         short sempid;   
269 /* pid des letzten Aufrufs */
270 .br
271 .B
272         ushort semncnt; 
273 /* Anzahl Prozesse 1 (s.w.u.) */
274 .br
275 .B
276         ushort semzcnt; 
277 /* Anzahl Prozesse 2 (s.w.u.) */
278 .TP 11
279 .B semval
280 Semaphorenwert: eine nicht - negativea Ganzzahl.
281 .TP
282 .B sempid
283 ID des letzten Prozesses, der mit dieser Semaphore eine
284 Semaphorenoperation ausführte.
285 .TP
286 .B semncnt
287 Anzahl Prozesse 1. Gemeint sind die Prozesse, die darauf warten,
288 dass
289 .B semval
290 erhöht wird.
291 .TP
292 .B semznt
293 Anzahl Prozesse 2. Gemeint sind die Prozesse, die darauf warten, dass
294 .B semval
295 den Wert 0 annimmt.
296 .SS Shared Memory Segments
297 Ein Shared Memory Segment wird eindeutig identifiziert durch eine
298 positive Ganzzahl
299 .RI "(seine " shmid )
300 und ist verbunden mit einer Datenstruktur vom Typ
301 .BR "struct shmid_ds" ,
302 definiert in
303 .IR <sys/shm.h> ,
304 mit folgenden Einträgen:
305 .sp
306 .B
307         struct ipc_perm shm_perm;
308 .br
309 .B
310         int shm_segsz;  
311 /* Größe des Segments */
312 .br
313 .B
314         ushort shm_cpid;        
315 /* pid des Erzeugers */
316 .br
317 .B
318         ushort shm_lpid;        
319 /* pid, letzte Operation */
320 .br
321 .B
322         short shm_nattch;       
323 /* Anzahl derzeitiger Anbindungen */
324 .br
325 .B
326         time_t shm_atime;       
327 /* Zeit der letzten Anbindung */
328 .br
329 .B
330         time_t shm_dtime;       
331 /* Zeit der letzten Freigabe */
332 .br
333 .B
334         time_t shm_ctime;       
335 /* Zeit der letzten Änderung */
336 .TP 11
337 .B shm_perm
338 .B ipc_perm
339 Struktur, die die Zugriffsrechte auf das Shared Memory Segment
340 definiert.
341 .TP
342 .B shm_segsz
343 Größe des Segments in Bytes.
344 .TP
345 .B shm_cpid
346 ID des Prozesses, der das Shared Memory Segment erzeugt hat.
347 .TP
348 .B shm_lpid
349 ID des letzten Prozesses, der den
350 .B shmat
351 oder
352 .B shmdt
353 Systemaufruf ausgeführt hat.
354 .TP
355 .B shm_nattch
356 Anzahl von Prozessen, die derzeit mit diesem Shared Memory Segment 
357 arbeiten (attaches).
358 .TP
359 .B shm_atime
360 Zeit des letzten
361 .B shmat
362 Systemaufrufs.
363 .TP
364 .B shm_dtime
365 Zeit des letzten
366 .B shmdt
367 Systemaufrufs.
368 .TP
369 .B shm_ctime
370 Zeit des letzten
371 .B shmctl
372 Systemaufrufs,der
373 .BR shmid_ds 
374 verändert hat.
375 .SH "SIEHE AUCH"
376 .BR ftok (3),
377 .BR msgctl (2),
378 .BR msgget (2),
379 .BR msgrcv (2),
380 .BR msgsnd (2),
381 .BR semctl (2),
382 .BR semget (2),
383 .BR semop (2),
384 .BR shmat (2),
385 .BR shmctl (2),
386 .BR shmget (2),
387 .BR shmdt (2).
388