summaryrefslogtreecommitdiffstats
path: root/po/de/man2/shmop.2.po
diff options
context:
space:
mode:
Diffstat (limited to 'po/de/man2/shmop.2.po')
-rw-r--r--po/de/man2/shmop.2.po1536
1 files changed, 1536 insertions, 0 deletions
diff --git a/po/de/man2/shmop.2.po b/po/de/man2/shmop.2.po
new file mode 100644
index 00000000..3c2b60d5
--- /dev/null
+++ b/po/de/man2/shmop.2.po
@@ -0,0 +1,1536 @@
+# German translation of manpages
+# This file is distributed under the same license as the manpages-l10n package.
+# Copyright © of this file:
+# Ralf Demmer <rdemmer@rdemmer.de>
+# Chris Leick <c.leick@vollbio.de>, 2010-2014.
+# Helge Kreutzmann <debian@helgefjell.de>, 2020, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: manpages-l10n 4.20.0\n"
+"POT-Creation-Date: 2024-03-01 17:08+0100\n"
+"PO-Revision-Date: 2023-09-07 19:41+0200\n"
+"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
+"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SHMOP"
+msgstr "SHMOP"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr "31. Oktober 2023"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr "Linux man-pages 6.06"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr "BEZEICHNUNG"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "shmat, shmdt - System V shared memory operations"
+msgstr "shmat, shmdt - System-V-Operationen mit gemeinsam benutztem Speicher"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr "BIBLIOTHEK"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr "Standard-C-Bibliothek (I<libc>, I<-lc>)"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "ÜBERSICHT"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<#include E<lt>sys/shm.hE<gt>>\n"
+msgstr "B<#include E<lt>sys/shm.hE<gt>>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<void *shmat(int >I<shmid>B<, const void *_Nullable >I<shmaddr>B<, int >I<shmflg>B<);>\n"
+"B<int shmdt(const void *>I<shmaddr>B<);>\n"
+msgstr ""
+"B<void *shmat(int >I<shmid>B<, const void *_Nullable >I<shmaddr>B<, int >I<shmflg>B<);>\n"
+"B<int shmdt(const void *>I<shmaddr>B<);>\n"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "BESCHREIBUNG"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "shmat()"
+msgstr "shmat()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<shmat>() attaches the System\\ V shared memory segment identified by "
+"I<shmid> to the address space of the calling process. The attaching address "
+"is specified by I<shmaddr> with one of the following criteria:"
+msgstr ""
+"B<shmat>() blendet das durch I<shmid> bezeichnete gemeinsame System-V-"
+"Speichersegment in den Adressraum des aufrufenden Prozesses ein. Die Adresse "
+"der Einblendung wird durch I<shmaddr> nach einem der folgenden Kriterien "
+"bestimmt:"
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "\\[bu]"
+msgstr "\\[bu]"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If I<shmaddr> is NULL, the system chooses a suitable (unused) page-aligned "
+"address to attach the segment."
+msgstr ""
+"Falls I<shmaddr> NULL ist, wählt das System eine geeignete (freie), an einer "
+"Speicherseite ausgerichtete Adresse, um das Segment einzublenden."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If I<shmaddr> isn't NULL and B<SHM_RND> is specified in I<shmflg>, the "
+"attach occurs at the address equal to I<shmaddr> rounded down to the nearest "
+"multiple of B<SHMLBA>."
+msgstr ""
+"Wenn I<shmaddr> nicht NULL ist und B<SHM_RND> in I<shmflg> angegeben wurde, "
+"wird die Adresse durch Abrundung von I<shmaddr> bis auf ein Vielfaches von "
+"B<SHMLBA> bestimmt."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Otherwise, I<shmaddr> must be a page-aligned address at which the attach "
+"occurs."
+msgstr ""
+"Andernfalls muss I<shmaddr> eine an einer Speicherseite ausgerichtete "
+"Adresse sein, an welcher das Einblenden beginnt."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In addition to B<SHM_RND>, the following flags may be specified in the "
+"I<shmflg> bit-mask argument:"
+msgstr ""
+"Zusätzlich zu B<SHM_RND> dürfen die folgenden Schalter im Bitmask-Argument "
+"von I<shmflg> angegeben werden:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<SHM_EXEC> (Linux-specific; since Linux 2.6.9)"
+msgstr "B<SHM_EXEC> (Linux-spezifisch; seit Linux 2.6.9)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Allow the contents of the segment to be executed. The caller must have "
+"execute permission on the segment."
+msgstr ""
+"ermöglicht, dass der Inhalt des Segments ausgeführt wird. Der Aufrufende "
+"muss auf dem Segment Ausführungsrechte besitzen."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<SHM_RDONLY>"
+msgstr "B<SHM_RDONLY>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Attach the segment for read-only access. The process must have read "
+"permission for the segment. If this flag is not specified, the segment is "
+"attached for read and write access, and the process must have read and write "
+"permission for the segment. There is no notion of a write-only shared "
+"memory segment."
+msgstr ""
+"blendet das Segment mit Lesezugriff ein. Der Prozess muss die Berechtigung "
+"für Lesezugriffe auf das Segment besitzen. Falls dieser Schalter nicht "
+"angegeben ist, wird das Segment mit Lese- und Schreibzugriff eingeblendet "
+"und der Prozess muss die Berechtigung für Lese- und Schreibzugriffe auf das "
+"Segment besitzen. Ein gemeinsames Speichersegment mit reinem Schreibzugriff "
+"ist nicht vorgesehen."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<SHM_REMAP> (Linux-specific)"
+msgstr "B<SHM_REMAP> (Linux-spezifisch)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This flag specifies that the mapping of the segment should replace any "
+"existing mapping in the range starting at I<shmaddr> and continuing for the "
+"size of the segment. (Normally, an B<EINVAL> error would result if a "
+"mapping already exists in this address range.) In this case, I<shmaddr> "
+"must not be NULL."
+msgstr ""
+"Dieser Schalter gibt an, dass das Abbilden des Segments jedes existierende "
+"Abbilden im Bereich von I<shmaddr> bis zur Größe des Segments ersetzen soll. "
+"(Falls bereits eine Abbildung in diesem Adressbereich existiert, würde dies "
+"normalerweise zu dem Fehler B<EINVAL> führen.) In diesem Fall darf "
+"I<shmaddr> nicht NULL sein."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<brk>(2) value of the calling process is not altered by the attach. "
+"The segment will automatically be detached at process exit. The same "
+"segment may be attached as a read and as a read-write one, and more than "
+"once, in the process's address space."
+msgstr ""
+"Der B<brk>(2)-Wert des aufrufenden Prozesses wird durch das Einblenden nicht "
+"verändert. Das Segment wird bei Beenden des Prozesses automatisch "
+"abgetrennt. Das gleiche Segment kann mit Lese- sowie mit Lese- und "
+"Schreibzugriff einmal oder mehrfach in den Adressraum des Prozesses "
+"eingeblendet werden."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A successful B<shmat>() call updates the members of the I<shmid_ds> "
+"structure (see B<shmctl>(2)) associated with the shared memory segment as "
+"follows:"
+msgstr ""
+"Nach einem erfolgreichen B<shmat>()-Aufruf aktualisiert das System die "
+"Bestandteile der dem Speichersegment zugeordneten I<shmid_ds>-Struktur "
+"(siehe B<shmctl>(2)) wie folgt:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<shm_atime> is set to the current time."
+msgstr "I<shm_atime> wird auf die aktuelle Zeit gesetzt."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<shm_lpid> is set to the process-ID of the calling process."
+msgstr ""
+"I<shm_lpid> wird auf die Prozesskennung des aufrufenden Prozesses gesetzt."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<shm_nattch> is incremented by one."
+msgstr "I<shm_nattch> wird um Eins erhöht."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "shmdt()"
+msgstr "shmdt()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<shmdt>() detaches the shared memory segment located at the address "
+"specified by I<shmaddr> from the address space of the calling process. The "
+"to-be-detached segment must be currently attached with I<shmaddr> equal to "
+"the value returned by the attaching B<shmat>() call."
+msgstr ""
+"B<shmdt>() löst das gemeinsame Speichersegment, das an der Adresse "
+"I<shmaddr> liegt, aus dem Adressraum des aufrufenden Prozesses. Das zu "
+"entfernende gemeinsame Speichersegment muss momentan mit I<shmaddr> "
+"eingeblendet sein, das dem Rückgabewert des einbendenden B<shat>()-Aufrufs "
+"entspricht."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On a successful B<shmdt>() call, the system updates the members of the "
+"I<shmid_ds> structure associated with the shared memory segment as follows:"
+msgstr ""
+"Nach einem erfolgreichen B<shmdt>()-Aufruf aktualisiert das System die "
+"Bestandteile der dem Speichersegment zugeordneten Struktur B<shmid_ds> wie "
+"folgt:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<shm_dtime> is set to the current time."
+msgstr "I<shm_dtime> wird auf die aktuelle Zeit gesetzt."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<shm_nattch> is decremented by one. If it becomes 0 and the segment is "
+"marked for deletion, the segment is deleted."
+msgstr ""
+"I<shm_nattch> wird um Eins verringert. Wenn es dabei zu 0 wird und das "
+"Segment zum Löschen markiert ist, wird es gelöscht."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "RÜCKGABEWERT"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On success, B<shmat>() returns the address of the attached shared memory "
+"segment; on error, I<(void\\ *)\\ -1> is returned, and I<errno> is set to "
+"indicate the error."
+msgstr ""
+"Bei Erfolg gibt B<shmat>() die Adresse des eingeblendeten gemeinsamen "
+"Speichersegments zurück; bei einem Fehler wird I<(void\\ *)\\ -1> "
+"zurückgegeben und I<errno> gesetzt, um den Fehlers anzuzeigen."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On success, B<shmdt>() returns 0; on error -1 is returned, and I<errno> is "
+"set to indicate the error."
+msgstr ""
+"Bei Erfolg gibt B<shmdt>() 0 zurück; bei einem Fehler wird -1 zurückgegeben "
+"und I<errno> gesetzt, um den Fehlers anzuzeigen."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr "FEHLER"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<shmat>() can fail with one of the following errors:"
+msgstr "B<shmat>() kann mit einem der folgenden Fehler fehlschlagen:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EACCES>"
+msgstr "B<EACCES>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The calling process does not have the required permissions for the requested "
+"attach type, and does not have the B<CAP_IPC_OWNER> capability in the user "
+"namespace that governs its IPC namespace."
+msgstr ""
+"Dem aufrufenden Prozess fehlen die nötigen Zugriffsrechte für den "
+"angeforderten Einblendetyp und die B<CAP_IPC_OWNER>-Capability in dem "
+"Benutzernamensraum, der seinen IPC-Namensraum beherrscht."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EIDRM>"
+msgstr "B<EIDRM>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<shmid> points to a removed identifier."
+msgstr "I<shmid> zeigt auf einen entfernten Bezeichner."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EINVAL>"
+msgstr "B<EINVAL>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Invalid I<shmid> value, unaligned (i.e., not page-aligned and B<SHM_RND> was "
+"not specified) or invalid I<shmaddr> value, or can't attach segment at "
+"I<shmaddr>, or B<SHM_REMAP> was specified and I<shmaddr> was NULL."
+msgstr ""
+"Ungültiger I<shmid>-Wert, nicht ausgerichteter (d.h. nicht an die "
+"Seitengröße angepasst und B<SHM_RND> wurde nicht angegeben) oder ungültiger "
+"I<shmaddr>-Wert oder es wurde B<SHM_REMAP> angegeben und I<shmaddr> war NULL."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOMEM>"
+msgstr "B<ENOMEM>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Could not allocate memory for the descriptor or for the page tables."
+msgstr ""
+"Es konnte kein Speicher für den Deskriptor oder die Seitentabellen "
+"reserviert werden."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<shmdt>() can fail with one of the following errors:"
+msgstr "B<shmdt>() kann mit einem der folgenden Fehler fehlschlagen:"
+
+#. The following since Linux 2.6.17-rc1:
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"There is no shared memory segment attached at I<shmaddr>; or, I<shmaddr> is "
+"not aligned on a page boundary."
+msgstr ""
+"Es ist kein gemeinsames Speichersegment in I<shmaddr> eingeblendet oder "
+"I<shmaddr> ist nicht an der Seitengrenze ausgerichtet."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr "STANDARDS"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2008."
+msgstr "POSIX.1-2008."
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr "GESCHICHTE"
+
+#. SVr4 documents an additional error condition EMFILE.
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2001, SVr4."
+msgstr "POSIX.1-2001, SVr4."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In SVID 3 (or perhaps earlier), the type of the I<shmaddr> argument was "
+"changed from I<char\\ *> into I<const void\\ *>, and the returned type of "
+"B<shmat>() from I<char\\ *> into I<void\\ *>."
+msgstr ""
+"In SVID 3 (oder vielleicht früher) wurde der Typ des Arguments I<shmaddr> "
+"von I<char\\ *> in I<const void\\ *> und der von B<shmat>() zurückgegebene "
+"Typ von I<char\\ *> in I<void\\ *> geändert."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NOTES"
+msgstr "ANMERKUNGEN"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"After a B<fork>(2), the child inherits the attached shared memory segments."
+msgstr ""
+"Nach einem B<fork>(2) erbt der Kindprozess das eingeblendete gemeinsame "
+"Speichersegment."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"After an B<execve>(2), all attached shared memory segments are detached from "
+"the process."
+msgstr ""
+"Nach einem B<exec>(2) sind alle eingeblendeten gemeinsamen Speichersegmente "
+"vom Prozess abgelöst."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Upon B<_exit>(2), all attached shared memory segments are detached from the "
+"process."
+msgstr ""
+"Bei einem B<exit>(2) sind alle eingeblendeten gemeinsamen Speichersegmente "
+"vom Prozess abgelöst."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Using B<shmat>() with I<shmaddr> equal to NULL is the preferred, portable "
+"way of attaching a shared memory segment. Be aware that the shared memory "
+"segment attached in this way may be attached at different addresses in "
+"different processes. Therefore, any pointers maintained within the shared "
+"memory must be made relative (typically to the starting address of the "
+"segment), rather than absolute."
+msgstr ""
+"Die bevorzugte, portierbare Möglichkeit, ein gemeinsames Speichersegment "
+"einzublenden, besteht darin, B<shmat>() mit I<shmaddr> gleich NULL zu "
+"benutzen. Sie sollten wissen, dass das eingeblendete gemeinsame "
+"Speichersegment auf diese Art an unterschiedliche Adressen in "
+"unterschiedlichen Prozessen eingeblendet werden kann. Deshalb müssen alle "
+"innerhalb des gemeinsamen Speichers verwalteten Zeiger relativ "
+"(typischerweise zur Startadresse des Segments) statt absolut sein."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On Linux, it is possible to attach a shared memory segment even if it is "
+"already marked to be deleted. However, POSIX.1 does not specify this "
+"behavior and many other implementations do not support it."
+msgstr ""
+"Unter Linux ist es möglich, sogar ein gemeinsames Speichersegment "
+"einzublenden, wenn es bereits zum Löschen markiert ist. POSIX.1 spezifiziert "
+"dieses Verhalten jedoch nicht und andere Implementierungen unterstützen es "
+"nicht."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The following system parameter affects B<shmat>():"
+msgstr "Der folgende Systemparameter beeinflusst B<shmat>():"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<SHMLBA>"
+msgstr "B<SHMLBA>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Segment low boundary address multiple. When explicitly specifying an attach "
+"address in a call to B<shmat>(), the caller should ensure that the address "
+"is a multiple of this value. This is necessary on some architectures, in "
+"order either to ensure good CPU cache performance or to ensure that "
+"different attaches of the same segment have consistent views within the CPU "
+"cache. B<SHMLBA> is normally some multiple of the system page size. (On "
+"many Linux architectures, B<SHMLBA> is the same as the system page size.)"
+msgstr ""
+"Untere Segmentgrenze des Adressvielfachen. Wenn in einem Aufruf von "
+"B<shmat>() eine Adresse explizit angegeben wurde. sollte der Aufrufende "
+"sicherstellen, dass die Adresse ein Vielfaches dieses Wertes ist. Dies ist "
+"auf einigen Architekturen notwendig, um eine gute Leistung des CPU-"
+"Zwischenspeichers zu gewährleisten oder um sicherzustellen, dass "
+"unterschiedliche Einblendungen desselben Segments konsistente Ansichten "
+"innerhalb des CPU-Zwischenspeichers haben. B<SHMLBA> ist normalerweise "
+"irgendein Vielfaches von der Seitengröße des Systems. (Auf vielen Linux-"
+"Architekturen ist B<SHMLBA> dasselbe wie die Seitengröße des Systems.)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The implementation places no intrinsic per-process limit on the number of "
+"shared memory segments (B<SHMSEG>)."
+msgstr ""
+"Die Implementierung hat keine inhärenten pro-Prozess-Einschränkungen "
+"bezüglich der maximalen Anzahl von gemeinsamen Speichersegmenten (B<SHMSEG>)."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "BEISPIELE"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The two programs shown below exchange a string using a shared memory "
+"segment. Further details about the programs are given below. First, we "
+"show a shell session demonstrating their use."
+msgstr ""
+"Die zwei nachfolgend aufgeführten Programme tauschen eine Zeichenkette über "
+"ein gemeinsames Speichersegment aus. Weitere Details über die Programme "
+"finden Sie nachfolgend. Zuerst wird eine Shell-Sitzung gezeigt, die ihre "
+"Verwendung zeigt."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In one terminal window, we run the \"reader\" program, which creates a "
+"System V shared memory segment and a System V semaphore set. The program "
+"prints out the IDs of the created objects, and then waits for the semaphore "
+"to change value."
+msgstr ""
+"In einem Terminalfenster führen wir das »Lese«-Programm aus, das ein "
+"gemeinsam benutztes Speichersegment und eine Semaphoren-Gruppe gemäß System-"
+"V erstellt. Das Programm gibt die Kennung der erstellten Objekte aus und "
+"wartet dann darauf, dass die Semaphore ihren Wert ändern."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$ B<./svshm_string_read>\n"
+"shmid = 1114194; semid = 15\n"
+msgstr ""
+"$ B<./svshm_string_read>\n"
+"shmid = 1114194; semid = 15\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In another terminal window, we run the \"writer\" program. The \"writer\" "
+"program takes three command-line arguments: the IDs of the shared memory "
+"segment and semaphore set created by the \"reader\", and a string. It "
+"attaches the existing shared memory segment, copies the string to the shared "
+"memory, and modifies the semaphore value."
+msgstr ""
+"In einem anderen Terminal-Fenster führen wir das »Schreibe«-Programm aus\\&. "
+"Das »Schreibe«-Programm akzeptiert drei Befehlszeilenargumente: die "
+"Kennungen des vom »Lese«-Programm erstellten gemeinsam benutzten "
+"Speichersegments und die erstellte Semaphoren-Gruppe und eine Zeichenkette. "
+"Es blendet das bestehende gemeinsam benutzte Speichersegment ein, kopiert "
+"die Zeichenkette in den gemeinsam benutzten Speicher und verändert den Wert "
+"der Semaphore."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "$ B<./svshm_string_write 1114194 15 \\[aq]Hello, world\\[aq]>\n"
+msgstr "$ B<./svshm_string_write 1114194 15 \\[aq]Hallo, Welt\\[aq]>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Returning to the terminal where the \"reader\" is running, we see that the "
+"program has ceased waiting on the semaphore and has printed the string that "
+"was copied into the shared memory segment by the writer:"
+msgstr ""
+"In dem Terminal-Fenster, in dem das »Lese«-Programm läuft, können wir sehen, "
+"dass das Programm aufgehört hat, auf die Semaphore zu warten und die "
+"Zeichenkette ausgegeben hat, die vom Schreibe-Programm in den gemeinsam "
+"benutzten Speicher kopiert wurde:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Hello, world\n"
+msgstr "Hallo Welt\n"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source: svshm_string.h"
+msgstr "Quelle des Programms: svshm_string.h"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following header file is included by the \"reader\" and \"writer\" "
+"programs:"
+msgstr ""
+"Die folgende Header-Datei wird von den »Lese«- und »Schreibe«-Programmen "
+"eingebunden:"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"/* svshm_string.h\n"
+"\\&\n"
+" Licensed under GNU General Public License v2 or later.\n"
+"*/\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>sys/ipc.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"\\&\n"
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+"\\&\n"
+"union semun { /* Used in calls to semctl() */\n"
+" int val;\n"
+" struct semid_ds * buf;\n"
+" unsigned short * array;\n"
+"#if defined(__linux__)\n"
+" struct seminfo * __buf;\n"
+"#endif\n"
+"};\n"
+"\\&\n"
+"#define MEM_SIZE 4096\n"
+msgstr ""
+"/* svshm_string.h\n"
+"\\&\n"
+" Lizenziert unter der GNU General Public License v2 oder neuer.\n"
+"*/\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>sys/ipc.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"\\&\n"
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+"\\&\n"
+"union semun { /* Wird in Aufrufen von semctl() verwandt */\n"
+" int val;\n"
+" struct semid_ds * buf;\n"
+" unsigned short * array;\n"
+"#if defined(__linux__)\n"
+" struct seminfo * __buf;\n"
+"#endif\n"
+"};\n"
+"\\&\n"
+"#define MEM_SIZE 4096\n"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source: svshm_string_read.c"
+msgstr "Quelle des Programms: svshm_string_read.c"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The \"reader\" program creates a shared memory segment and a semaphore set "
+"containing one semaphore. It then attaches the shared memory object into "
+"its address space and initializes the semaphore value to 1. Finally, the "
+"program waits for the semaphore value to become 0, and afterwards prints the "
+"string that has been copied into the shared memory segment by the \"writer\"."
+msgstr ""
+"Das »Lese«-Programm erstellt ein gemeinsam benutztes Speichersegment und "
+"eine Semaphore-Gruppe, die eine Semaphore enthält. Es blendet dann das "
+"gemeinsam benutzte Speicherobjekt in seinen Adressraum ein und initialisiert "
+"den Semaphoren-Wert auf 1. Schließlich wartet das Programm darauf, dass der "
+"Semaphoren-Wert 0 wird und gibt danach die Zeichenkette aus, die durch den "
+"»Schreiber« in das gemeinsam benutzte Speichersegment kopiert wurde."
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"/* svshm_string_read.c\n"
+"\\&\n"
+" Licensed under GNU General Public License v2 or later.\n"
+"*/\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/ipc.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+"\\&\n"
+"#include \"svshm_string.h\"\n"
+"\\&\n"
+"int\n"
+"main(void)\n"
+"{\n"
+" int semid, shmid;\n"
+" char *addr;\n"
+" union semun arg, dummy;\n"
+" struct sembuf sop;\n"
+"\\&\n"
+" /* Create shared memory and semaphore set containing one\n"
+" semaphore. */\n"
+"\\&\n"
+" shmid = shmget(IPC_PRIVATE, MEM_SIZE, IPC_CREAT | 0600);\n"
+" if (shmid == -1)\n"
+" errExit(\"shmget\");\n"
+"\\&\n"
+" semid = semget(IPC_PRIVATE, 1, IPC_CREAT | 0600);\n"
+" if (semid == -1)\n"
+" errExit(\"semget\");\n"
+"\\&\n"
+" /* Attach shared memory into our address space. */\n"
+"\\&\n"
+" addr = shmat(shmid, NULL, SHM_RDONLY);\n"
+" if (addr == (void *) -1)\n"
+" errExit(\"shmat\");\n"
+"\\&\n"
+" /* Initialize semaphore 0 in set with value 1. */\n"
+"\\&\n"
+" arg.val = 1;\n"
+" if (semctl(semid, 0, SETVAL, arg) == -1)\n"
+" errExit(\"semctl\");\n"
+"\\&\n"
+" printf(\"shmid = %d; semid = %d\\en\", shmid, semid);\n"
+"\\&\n"
+" /* Wait for semaphore value to become 0. */\n"
+"\\&\n"
+" sop.sem_num = 0;\n"
+" sop.sem_op = 0;\n"
+" sop.sem_flg = 0;\n"
+"\\&\n"
+" if (semop(semid, &sop, 1) == -1)\n"
+" errExit(\"semop\");\n"
+"\\&\n"
+" /* Print the string from shared memory. */\n"
+"\\&\n"
+" printf(\"%s\\en\", addr);\n"
+"\\&\n"
+" /* Remove shared memory and semaphore set. */\n"
+"\\&\n"
+" if (shmctl(shmid, IPC_RMID, NULL) == -1)\n"
+" errExit(\"shmctl\");\n"
+" if (semctl(semid, 0, IPC_RMID, dummy) == -1)\n"
+" errExit(\"semctl\");\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+"/* svshm_string_read.c\n"
+"\\&\n"
+" Lizenziert unter der GNU General Public License v2 oder neuer.\n"
+"*/\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/ipc.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+"\\&\n"
+"#include \"svshm_string.h\"\n"
+"\\&\n"
+"int\n"
+"main(void)\n"
+"{\n"
+" int semid, shmid;\n"
+" char *addr;\n"
+" union semun arg, dummy;\n"
+" struct sembuf sop;\n"
+"\\&\n"
+" /* Gemeinsam benutzten Speicher und eine Semaphoren-Gruppe, die eine\n"
+" Semaphore enthält, erstellen. */\n"
+"\\&\n"
+" shmid = shmget(IPC_PRIVATE, MEM_SIZE, IPC_CREAT | 0600);\n"
+" if (shmid == -1)\n"
+" errExit(\"shmget\");\n"
+"\\&\n"
+" semid = semget(IPC_PRIVATE, 1, IPC_CREAT | 0600);\n"
+" if (semid == -1)\n"
+" errExit(\"semget\");\n"
+"\\&\n"
+" /* Gemeinsamen Speicher in unseren Adressraum einblenden. */\n"
+"\\&\n"
+" addr = shmat(shmid, NULL, SHM_RDONLY);\n"
+" if (addr == (void *) -1)\n"
+" errExit(\"shmat\");\n"
+"\\&\n"
+" /* Semaphore 0 in der Gruppe mit dem Wert 1 initialisieren. */\n"
+"\\&\n"
+" arg.val = 1;\n"
+" if (semctl(semid, 0, SETVAL, arg) == -1)\n"
+" errExit(\"semctl\");\n"
+"\\&\n"
+" printf(\"shmid = %d; semid = %d\\en\", shmid, semid);\n"
+"\\&\n"
+" /* Darauf warten, dass der Semaphore-Wert 0 wird. */\n"
+"\\&\n"
+" sop.sem_num = 0;\n"
+" sop.sem_op = 0;\n"
+" sop.sem_flg = 0;\n"
+"\\&\n"
+" if (semop(semid, &sop, 1) == -1)\n"
+" errExit(\"semop\");\n"
+"\\&\n"
+" /* Die Zeichenkette aus dem gemeinsamen Speicher ausgeben. */\n"
+"\\&\n"
+" printf(\"%s\\en\", addr);\n"
+"\\&\n"
+" /* Den gemeinsam benutzten Speicher und die Semaphoren-Gruppe entfernen. */\n"
+"\\&\n"
+" if (shmctl(shmid, IPC_RMID, NULL) == -1)\n"
+" errExit(\"shmctl\");\n"
+" if (semctl(semid, 0, IPC_RMID, dummy) == -1)\n"
+" errExit(\"semctl\");\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source: svshm_string_write.c"
+msgstr "Quelle des Programms: svshm_string_write.c"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The writer program takes three command-line arguments: the IDs of the shared "
+"memory segment and semaphore set that have already been created by the "
+"\"reader\", and a string. It attaches the shared memory segment into its "
+"address space, and then decrements the semaphore value to 0 in order to "
+"inform the \"reader\" that it can now examine the contents of the shared "
+"memory."
+msgstr ""
+"Das Schreibe-Programm akzeptiert drei Befehlszeilenargumente: die Kennungen "
+"des vom »Lese«-Programm bereits erstellten, gemeinsam benutzten "
+"Speichersegments und die Sempahoren-Gruppe und eine Zeichenkette. Es blendet "
+"das bestehende gemeinsam benutzte Speichersegment in seinen Adressraum ein, "
+"verringert den Semaphoren-Wert auf 0, um den »Leser« zu informieren, dass er "
+"jetzt den Inhalt des gemeinsam benutzten Speichers untersuchen kann."
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"/* svshm_string_write.c\n"
+"\\&\n"
+" Licensed under GNU General Public License v2 or later.\n"
+"*/\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+"\\&\n"
+"#include \"svshm_string.h\"\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int semid, shmid;\n"
+" char *addr;\n"
+" size_t len;\n"
+" struct sembuf sop;\n"
+"\\&\n"
+" if (argc != 4) {\n"
+" fprintf(stderr, \"Usage: %s shmid semid string\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" len = strlen(argv[3]) + 1; /* +1 to include trailing \\[aq]\\e0\\[aq] */\n"
+" if (len E<gt> MEM_SIZE) {\n"
+" fprintf(stderr, \"String is too big!\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" /* Get object IDs from command-line. */\n"
+"\\&\n"
+" shmid = atoi(argv[1]);\n"
+" semid = atoi(argv[2]);\n"
+"\\&\n"
+" /* Attach shared memory into our address space and copy string\n"
+" (including trailing null byte) into memory. */\n"
+"\\&\n"
+" addr = shmat(shmid, NULL, 0);\n"
+" if (addr == (void *) -1)\n"
+" errExit(\"shmat\");\n"
+"\\&\n"
+" memcpy(addr, argv[3], len);\n"
+"\\&\n"
+" /* Decrement semaphore to 0. */\n"
+"\\&\n"
+" sop.sem_num = 0;\n"
+" sop.sem_op = -1;\n"
+" sop.sem_flg = 0;\n"
+"\\&\n"
+" if (semop(semid, &sop, 1) == -1)\n"
+" errExit(\"semop\");\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+"/* svshm_string_write.c\n"
+"\\&\n"
+" Lizenziert unter der GNU General Public License v2 oder neuer.\n"
+"*/\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+"\\&\n"
+"#include \"svshm_string.h\"\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int semid, shmid;\n"
+" char *addr;\n"
+" size_t len;\n"
+" struct sembuf sop;\n"
+"\\&\n"
+" if (argc != 4) {\n"
+" fprintf(stderr, \"Aufruf: %s shmid semid string\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" len = strlen(argv[3]) + 1; /* +1, um abschließende »\\e0« einzuschließen */\n"
+" if (len E<gt> MEM_SIZE) {\n"
+" fprintf(stderr, \"Zeichenkette ist zu groß!\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" /* Objektkennungen von der Befehlszeile erhalten. */\n"
+"\\&\n"
+" shmid = atoi(argv[1]);\n"
+" semid = atoi(argv[2]);\n"
+"\\&\n"
+" /* Gemeinsam benutzten Speicher in unseren Adressraum einblenden und Zeichenkette\n"
+" (einschließlich abschließendem Nullbyte) in den Speicher kopieren */\n"
+"\\&\n"
+" addr = shmat(shmid, NULL, 0);\n"
+" if (addr == (void *) -1)\n"
+" errExit(\"shmat\");\n"
+"\\&\n"
+" memcpy(addr, argv[3], len);\n"
+"\\&\n"
+" /* Semaphore auf 0 verringern. */\n"
+"\\&\n"
+" sop.sem_num = 0;\n"
+" sop.sem_op = -1;\n"
+" sop.sem_flg = 0;\n"
+"\\&\n"
+" if (semop(semid, &sop, 1) == -1)\n"
+" errExit(\"semop\");\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "SIEHE AUCH"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<brk>(2), B<mmap>(2), B<shmctl>(2), B<shmget>(2), B<capabilities>(7), "
+"B<shm_overview>(7), B<sysvipc>(7)"
+msgstr ""
+"B<brk>(2), B<mmap>(2), B<shmctl>(2), B<shmget>(2), B<capabilities>(7), "
+"B<shm_overview>(7), B<sysvipc>(7)"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr "5. Februar 2023"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr "Linux man-pages 6.03"
+
+#. SVr4 documents an additional error condition EMFILE.
+#. type: Plain text
+#: debian-bookworm
+msgid "POSIX.1-2001, POSIX.1-2008, SVr4."
+msgstr "POSIX.1-2001, POSIX.1-2008, SVr4."
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "/* svshm_string.h\n"
+msgstr "/* svshm_string.h\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" Licensed under GNU General Public License v2 or later.\n"
+"*/\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>sys/ipc.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+msgstr ""
+" Lizenziert unter der GNU General Public License v2 oder neuer.\n"
+"*/\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>sys/ipc.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+msgstr ""
+"#define errExit(Nachricht) do { perror(Nachricht); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"union semun { /* Used in calls to semctl() */\n"
+" int val;\n"
+" struct semid_ds * buf;\n"
+" unsigned short * array;\n"
+"#if defined(__linux__)\n"
+" struct seminfo * __buf;\n"
+"#endif\n"
+"};\n"
+msgstr ""
+"union semun { /* Wird in Aufrufen von semctl() verwandt */\n"
+" int val;\n"
+" struct semid_ds * buf;\n"
+" unsigned short * array;\n"
+"#if defined(__linux__)\n"
+" struct seminfo * __buf;\n"
+"#endif\n"
+"};\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "#define MEM_SIZE 4096\n"
+msgstr "#define MEM_SIZE 4096\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "/* svshm_string_read.c\n"
+msgstr "/* svshm_string_read.c\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" Licensed under GNU General Public License v2 or later.\n"
+"*/\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/ipc.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+msgstr ""
+" Lizenziert unter der GNU General Public License v2 oder neuer.\n"
+"*/\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/ipc.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "#include \"svshm_string.h\"\n"
+msgstr "#include \"svshm_string.h\"\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(void)\n"
+"{\n"
+" int semid, shmid;\n"
+" char *addr;\n"
+" union semun arg, dummy;\n"
+" struct sembuf sop;\n"
+msgstr ""
+"int\n"
+"main(void)\n"
+"{\n"
+" int semid, shmid;\n"
+" char *addr;\n"
+" union semun arg, dummy;\n"
+" struct sembuf sop;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* Create shared memory and semaphore set containing one\n"
+" semaphore. */\n"
+msgstr ""
+" /* Gemeinsam benutzten Speicher und eine Semaphoren-Gruppe, die eine\n"
+" Semaphore enthält, erstellen. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" shmid = shmget(IPC_PRIVATE, MEM_SIZE, IPC_CREAT | 0600);\n"
+" if (shmid == -1)\n"
+" errExit(\"shmget\");\n"
+msgstr ""
+" shmid = shmget(IPC_PRIVATE, MEM_SIZE, IPC_CREAT | 0600);\n"
+" if (shmid == -1)\n"
+" errExit(\"shmget\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" semid = semget(IPC_PRIVATE, 1, IPC_CREAT | 0600);\n"
+" if (semid == -1)\n"
+" errExit(\"semget\");\n"
+msgstr ""
+" semid = semget(IPC_PRIVATE, 1, IPC_CREAT | 0600);\n"
+" if (semid == -1)\n"
+" errExit(\"semget\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Attach shared memory into our address space. */\n"
+msgstr " /* Gemeinsamen Speicher in unseren Adressraum einblenden. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" addr = shmat(shmid, NULL, SHM_RDONLY);\n"
+" if (addr == (void *) -1)\n"
+" errExit(\"shmat\");\n"
+msgstr ""
+" addr = shmat(shmid, NULL, SHM_RDONLY);\n"
+" if (addr == (void *) -1)\n"
+" errExit(\"shmat\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Initialize semaphore 0 in set with value 1. */\n"
+msgstr " /* Semaphore 0 in der Gruppe mit dem Wert 1 initialisieren. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" arg.val = 1;\n"
+" if (semctl(semid, 0, SETVAL, arg) == -1)\n"
+" errExit(\"semctl\");\n"
+msgstr ""
+" arg.val = 1;\n"
+" if (semctl(semid, 0, SETVAL, arg) == -1)\n"
+" errExit(\"semctl\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"shmid = %d; semid = %d\\en\", shmid, semid);\n"
+msgstr " printf(\"shmid = %d; semid = %d\\en\", shmid, semid);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Wait for semaphore value to become 0. */\n"
+msgstr " /* Darauf warten, dass der Semaphore-Wert 0 wird. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" sop.sem_num = 0;\n"
+" sop.sem_op = 0;\n"
+" sop.sem_flg = 0;\n"
+msgstr ""
+" sop.sem_num = 0;\n"
+" sop.sem_op = 0;\n"
+" sop.sem_flg = 0;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (semop(semid, &sop, 1) == -1)\n"
+" errExit(\"semop\");\n"
+msgstr ""
+" if (semop(semid, &sop, 1) == -1)\n"
+" errExit(\"semop\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Print the string from shared memory. */\n"
+msgstr " /* Die Zeichenkette aus dem gemeinsamen Speicher ausgeben. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"%s\\en\", addr);\n"
+msgstr " printf(\"%s\\en\", addr);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Remove shared memory and semaphore set. */\n"
+msgstr " /* Den gemeinsam benutzten Speicher und die Semaphoren-Gruppe entfernen. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (shmctl(shmid, IPC_RMID, NULL) == -1)\n"
+" errExit(\"shmctl\");\n"
+" if (semctl(semid, 0, IPC_RMID, dummy) == -1)\n"
+" errExit(\"semctl\");\n"
+msgstr ""
+" if (shmctl(shmid, IPC_RMID, NULL) == -1)\n"
+" errExit(\"shmctl\");\n"
+" if (semctl(semid, 0, IPC_RMID, dummy) == -1)\n"
+" errExit(\"semctl\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "/* svshm_string_write.c\n"
+msgstr "/* svshm_string_write.c\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" Licensed under GNU General Public License v2 or later.\n"
+"*/\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+msgstr ""
+" Lizenziert unter der GNU General Public License v2 oder neuer.\n"
+"*/\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>sys/sem.hE<gt>\n"
+"#include E<lt>sys/shm.hE<gt>\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int semid, shmid;\n"
+" char *addr;\n"
+" size_t len;\n"
+" struct sembuf sop;\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int semid, shmid;\n"
+" char *addr;\n"
+" size_t len;\n"
+" struct sembuf sop;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (argc != 4) {\n"
+" fprintf(stderr, \"Usage: %s shmid semid string\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (argc != 4) {\n"
+" fprintf(stderr, \"Aufruf: %s Shmid Semid Zeichenkette\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" len = strlen(argv[3]) + 1; /* +1 to include trailing \\[aq]\\e0\\[aq] */\n"
+" if (len E<gt> MEM_SIZE) {\n"
+" fprintf(stderr, \"String is too big!\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" len = strlen(argv[3]) + 1; /* +1, um abschließende »\\e0« einzuschließen */\n"
+" if (len E<gt> MEM_SIZE) {\n"
+" fprintf(stderr, \"Zeichenkette ist zu groß!\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Get object IDs from command-line. */\n"
+msgstr " /* Objektkennungen von der Befehlszeile erhalten. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" shmid = atoi(argv[1]);\n"
+" semid = atoi(argv[2]);\n"
+msgstr ""
+" shmid = atoi(argv[1]);\n"
+" semid = atoi(argv[2]);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* Attach shared memory into our address space and copy string\n"
+" (including trailing null byte) into memory. */\n"
+msgstr ""
+" /* Gemeinsam benutzten Speicher in unseren Adressraum einblenden und Zeichenkette\n"
+" (einschließlich abschließendem Nullbyte) in den Speicher kopieren */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" addr = shmat(shmid, NULL, 0);\n"
+" if (addr == (void *) -1)\n"
+" errExit(\"shmat\");\n"
+msgstr ""
+" addr = shmat(shmid, NULL, 0);\n"
+" if (addr == (void *) -1)\n"
+" errExit(\"shmat\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " memcpy(addr, argv[3], len);\n"
+msgstr " memcpy(addr, argv[3], len);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Decrement semaphore to 0. */\n"
+msgstr " /* Semaphore auf 0 verringern. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" sop.sem_num = 0;\n"
+" sop.sem_op = -1;\n"
+" sop.sem_flg = 0;\n"
+msgstr ""
+" sop.sem_num = 0;\n"
+" sop.sem_op = -1;\n"
+" sop.sem_flg = 0;\n"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-05-03"
+msgstr "3. Mai 2023"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr "Linux man-pages 6.05.01"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr "30. März 2023"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr "Linux-Handbuchseiten 6.04"