diff options
Diffstat (limited to 'po/de/man2/shmop.2.po')
-rw-r--r-- | po/de/man2/shmop.2.po | 1536 |
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" |