[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[RFR] man://manpages-l10n/open.2.po



Hallo zusammen,

eine lange Gettext-Meldung in open.2.po hat mir ziemliches
Kopfzerbrechen bereitet. Das ist wohl darauf zurückzuführen, dass mir
als Nicht-Programmierer große Teile der Logik und Begriffswelt des
Abschnitts 2 ziemlich fremd sind. Hier ist sie:

#. type: Plain text
#: archlinux debian-buster debian-unstable mageia-cauldron
msgid ""
"B<O_DIRECT> I/Os should never be run concurrently with the B<fork>(2)  "
"system call, if the memory buffer is a private mapping (i.e., any mapping "
"created with the B<mmap>(2)  B<MAP_PRIVATE> flag; this includes memory "
"allocated on the heap and statically allocated buffers).  Any such I/Os, "
"whether submitted via an asynchronous I/O interface or from another thread "
"in the process, should be completed before B<fork>(2)  is called.  Failure "
"to do so can result in data corruption and undefined behavior in parent and "
"child processes.  This restriction does not apply when the memory buffer for "
"the B<O_DIRECT> I/Os was created using B<shmat>(2)  or B<mmap>(2)  with the "
"B<MAP_SHARED> flag.  Nor does this restriction apply when the memory buffer "
"has been advised as B<MADV_DONTFORK> with B<madvise>(2), ensuring that it "
"will not be available to the child after B<fork>(2)."
msgstr ""
"B<O_DIRECT>-E/As sollten niemals gleichzeitig mit dem Systemaufruf B<fork>(2)"
" ausgeführt werden, falls der Speicherpuffer eine private Zuweisung ist (das"
" heißt, jede mit dem Schalter B<MAP_PRIVATE> von B<mmap>(2) erzeugte"
" Zuweisung; dies beinhaltet im Heap zugewiesenen Speicher und statisch"
" zugewiesene Puffer). Und solche E/As, ganz gleich ob über eine asynchrone"
" E/A-Schnittstelle oder über einen anderen Thread im Prozess übergeben,"
" sollten abgeschlossen sein, bevor B<fork>(2) aufgerufen wird. Tun Sie dies"
" nicht, kann Beschädigung von Daten und undefiniertes Verhalten in Eltern-"
" und Kindprozessen die Folge sein. Diese Einschränkung gilt nicht, wenn der"
" Speicherpuffer für die B<O_DIRECT>-E/As mittels B<shmat>(2) oder B<mmap>(2)"
" mit dem Schalter B<MAP_SHARED> erzeugt wurde. Außerdem gilt die"
" Einschränkung nicht, wenn der Speicherpuffer mit B<madvise>(2) als B<"
"MADV_DONTFORK> deklariert wurde, was sicherstellt, dass es nach dem Aufruf"
" von B<fork>(2) für den Kindprozess nicht verfügbar ist."

Gruß Mario


Reply to: