Hallo Mitübersetzer, jetzt hängt dieser E-Mail der Teil 6 (von 6) mit der für solche E-Mails von mir üblichen Bitte um Korrektur mit konstruktiver Kritik. Vielen Dank & Grüße Helge -- Dr. Helge Kreutzmann debian@helgefjell.de Dipl.-Phys. http://www.helgefjell.de/debian.php 64bit GNU powered gpg signed mail preferred Help keep free software "libre": http://www.ffii.de/
#. type: SH #, no-wrap msgid "CONFORMING TO" msgstr "KONFORM ZU" #. type: Plain text msgid "" "SVr4, 4.3BSD, POSIX.1-2001. Only the operations B<F_DUPFD>, B<F_GETFD>, " "B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK>, and B<F_SETLKW> " "are specified in POSIX.1-2001." msgstr "" "SVr4, 4.3BSD, POSIX.1-2001. Nur die Operationen B<F_DUPFD>, B<F_GETFD>, " "B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK> und B<F_SETLKW> " "sind in POSIX.1-2001 spezifiziert." #. .BR _BSD_SOURCE , #. or #. type: Plain text msgid "" "B<F_GETOWN> and B<F_SETOWN> are specified in POSIX.1-2001. (To get their " "definitions, define either B<_XOPEN_SOURCE> with the value 500 or greater, " "or B<_POSIX_C_SOURCE> with the value 200809L or greater.)" msgstr "" "B<F_GETOWN> und B<F_SETOWN> sind in POSIX.1-2001 spezifiziert. (Um Ihre " "Definitionen zu erhalten, definieren Sie entweder B<_XOPEN_SOURCE> mit einem " "Wert größer oder gleich 500 oder definieren Sie B<_POSIX_C_SOURCE> mit einem " "Wert größer oder gleich 200809L.)" #. type: Plain text msgid "" "B<F_DUPFD_CLOEXEC> is specified in POSIX.1-2008. (To get this definition, " "define B<_POSIX_C_SOURCE> with the value 200809L or greater, or " "B<_XOPEN_SOURCE> with the value 700 or greater.)" msgstr "" "B<F_DUPFD_CLOEXEC> ist in POSIX.1-2001 spezifiziert. (Um diese Definitionen " "zu erhalten, definieren Sie B<_POSIX_C_SOURCE> mit einem Wert größer oder " "gleich 200809L oder B<_XOPEN_SOURCE> mit einem Wert größer oder gleich 700.)" #. .PP #. SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. #. type: Plain text msgid "" "B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, " "B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE>, and B<F_SETLEASE> are " "Linux-specific. (Define the B<_GNU_SOURCE> macro to obtain these " "definitions.)" msgstr "" "B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, " "B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE> und B<F_SETLEASE> sind " "Linux-spezifisch. (Definieren Sie das Makro B<_GNU_SOURCE>, um diese " "Definitionen zu erhalten.)" #. type: Plain text msgid "" "B<F_OFD_SETLK>, B<F_OFD_SETLKW>, and B<F_OFD_GETLK> are Linux-specific (and " "one must define B<_GNU_SOURCE> to obtain their definitions), but work is " "being done to have them included in the next version of POSIX.1." msgstr "" "B<F_OFD_SETLK>, B<F_OFD_SETLKW> und B<F_OFD_GETLK> sind Linux-spezifisch " "(und B<_GNU_SOURCE> muss definiert werden, um ihre Definitionen zu " "erhalten). Es wird aber daran gearbeitet, dass sie in der nächsten Version " "von POSIX.1 enthalten sind." #. FIXME . Once glibc adds support, add a note about FTM requirements #. type: Plain text msgid "B<F_ADD_SEALS> and B<F_GET_SEALS> are Linux-specific." msgstr "B<F_ADD_SEALS> und B<F_GET_SEALS> sind Linux-spezifisch." #. type: SH #, no-wrap msgid "NOTES" msgstr "ANMERKUNGEN" #. type: Plain text msgid "" "The errors returned by B<dup2>(2) are different from those returned by " "B<F_DUPFD>." msgstr "" "Die Fehler, die von B<dup2>(2) zurückgegeben werden, sind anders als die von " "B<F_DUPFD>." #. type: SS #, no-wrap msgid "File locking" msgstr "Sperrung von Dateien" #. type: Plain text msgid "" "The original Linux B<fcntl>() system call was not designed to handle large " "file offsets (in the I<flock> structure). Consequently, an B<fcntl64>() " "system call was added in Linux 2.4. The newer system call employs a " "different structure for file locking, I<flock64>, and corresponding " "commands, B<F_GETLK64>, B<F_SETLK64>, and B<F_SETLKW64>. However, these " "details can be ignored by applications using glibc, whose B<fcntl>() " "wrapper function transparently employs the more recent system call where it " "is available." msgstr "" "Der ursprüngliche Systemaufruf B<fcntl>() von Linux war nicht dafür " "konstruiert, große Dateiversätze (in der Struktur I<flock>) zu handhaben. " "Konsequenterweise wurde ein Systemaufruf B<fcntl64>() in Linux 2.4 " "hinzugefügt. Dieser neuere Systemaufruf setzt eine andere Struktur zum " "Sperren von Dateien ein, I<flock64>, und entsprechende Befehle B<F_GETLK64>, " "B<F_SETLK64> und B<F_SETLKW64>. Diese Details könne allerdings von " "Anwendungen, die Glibc einsetzen, ignoriert werden, da dessen " "Wrapperfunktion B<fcntl>() transparent den neueren Systemaufruf einsetzt, wo " "er verfügbar ist." #. type: SS #, no-wrap msgid "Record locks" msgstr "Datensatzsperren" #. type: Plain text msgid "" "Since kernel 2.0, there is no interaction between the types of lock placed " "by B<flock>(2) and B<fcntl>()." msgstr "" "Seit Kernel 2.0 gibt es keine Wechselwirkung zwischen den durch B<flock>(2) " "und B<fcntl>() gesetzten Sperrtypen." #. e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5 #. documents it in fcntl(5). mtk, May 2007 #. Also, FreeBSD documents it (Apr 2014). #. type: Plain text msgid "" "Several systems have more fields in I<struct flock> such as, for example, " "I<l_sysid>. Clearly, I<l_pid> alone is not going to be very useful if the " "process holding the lock may live on a different machine." msgstr "" "Bei einer Reihe von Systemen gibt es in I<struct flock> weitere Felder wie z." "B. I<l_sysid>. Es ist klar, dass I<l_pid> alleine nicht sehr nützlich ist, " "falls der Prozess, der die Sperre hält, auf einer anderen Maschine existiert." #. type: SS #, no-wrap msgid "Record locking and NFS" msgstr "Datensatzsperren und NFS" # # # #. Neil Brown: With NFSv3 the failure mode is the reverse. If #. the server loses contact with a client then any lock stays in place #. indefinitely ("why can't I read my mail"... I remember it well). #. Jeff Layton: #. Note that this is not a firm timeout. The server runs a job #. periodically to clean out expired stateful objects, and it's likely #. that there is some time (maybe even up to another whole lease period) #. between when the timeout expires and the job actually runs. If the #. client gets a RENEW in there within that window, its lease will be #. renewed and its state preserved. #. type: Plain text msgid "" "Before Linux 3.12, if an NFSv4 client loses contact with the server for a " "period of time (defined as more than 90 seconds with no communication), it " "might lose and regain a lock without ever being aware of the fact. (The " "period of time after which contact is assumed lost is known as the NFSv4 " "leasetime. On a Linux NFS server, this can be determined by looking at I</" "proc/fs/nfsd/nfsv4leasetime>, which expresses the period in seconds. The " "default value for this file is 90.) This scenario potentially risks data " "corruption, since another process might acquire a lock in the intervening " "period and perform file I/O." msgstr "" "Falls ein NFSv4-Client vor Linux 3.12 den Kontakt mit dem Server für eine " "bestimmte Zeitperiode (definiert als mehr als 90 Sekunden ohne " "Kommunikation) verlor, konnte er eine Sperre verlieren und wieder erlangen, " "ohne von dieser Tatsache Kenntnis zu erhalten. (Die Zeitperiode, nach der " "der Kontakt als verloren angesehen wird, ist als NFSv4-Ausleihzeit bekannt. " "Auf einem Linux-NFS-Server kann diese durch einen Blick in I</proc/fs/nfsd/" "nfsv4leasetime>, die diese Periode in Sekunden ausdrückt, bestimmt werden. " "Der Vorgabewert für diese Datei ist 90.) In diesem Szenario sind potenziell " "Datenbeschädigungen möglich, da ein anderer Prozess in der Zwischenzeit eine " "Sperre erlangen und Datei-E/A durchführen könnte." #. commit ef1820f9be27b6ad158f433ab38002ab8131db4d #. commit f6de7a39c181dfb8a2c534661a53c73afb3081cd #. type: Plain text msgid "" "Since Linux 3.12, if an NFSv4 client loses contact with the server, any I/O " "to the file by a process which \"thinks\" it holds a lock will fail until " "that process closes and reopens the file. A kernel parameter, I<nfs." "recover_lost_locks>, can be set to 1 to obtain the pre-3.12 behavior, " "whereby the client will attempt to recover lost locks when contact is " "reestablished with the server. Because of the attendant risk of data " "corruption, this parameter defaults to 0 (disabled)." msgstr "" "Wenn seit Linux 3.12 ein NFSv4-Client den Kontakt mit dem Server verliert, " "wird jede E/A des Prozesses, der »glaubt«, er halte eine Sperre, " "fehlschlagen, bis dieser Prozess die Datei schließt und erneut öffnet. Ein " "Kernelparameter (I<nfs.recover_lost_locks>) kann auf 1 gesetzt werden, um " "das pre-3.12-Verhalten zu errreichen, bei dem ein Client versuchen wird, " "verloren gegangene Sperren wiederherzustellen, wenn der Kontakt mit dem " "Server wieder etabliert ist. Aufgrund des vorhandenen Risikos der " "Datenverfälschung ist die Vorgabe für diesen Parameter 0 (deaktiviert)." #. type: SH #, no-wrap msgid "BUGS" msgstr "FEHLER" #. type: SS #, no-wrap msgid "F_SETFL" msgstr "F_SETFL" #. FIXME . According to POSIX.1-2001, O_SYNC should also be modifiable #. via fcntl(2), but currently Linux does not permit this #. See http://bugzilla.kernel.org/show_bug.cgi?id=5994 #. type: Plain text msgid "" "It is not possible to use B<F_SETFL> to change the state of the B<O_DSYNC> " "and B<O_SYNC> flags. Attempts to change the state of these flags are " "silently ignored." msgstr "" "Es ist nicht möglich, B<F_SETFL> zum Ändern des Zustands der Schalter " "B<O_DSYNC> und B<O_SYNC> zu verwenden. Versuche, den Zustand dieser Schalter " "zu ändern, werden ohne Meldung ignoriert." #. type: SS #, no-wrap msgid "F_GETOWN" msgstr "F_GETOWN" #. glibc source: sysdeps/unix/sysv/linux/i386/sysdep.h #. mtk, Dec 04: some limited testing on alpha and ia64 seems to #. indicate that ANY negative PGID value will cause F_GETOWN #. to misinterpret the return as an error. Some other architectures #. seem to have the same range check as i386. #. type: Plain text msgid "" "A limitation of the Linux system call conventions on some architectures " "(notably i386) means that if a (negative) process group ID to be returned " "by B<F_GETOWN> falls in the range -1 to -4095, then the return value is " "wrongly interpreted by glibc as an error in the system call; that is, the " "return value of B<fcntl>() will be -1, and I<errno> will contain the " "(positive) process group ID. The Linux-specific B<F_GETOWN_EX> operation " "avoids this problem. Since glibc version 2.11, glibc makes the kernel " "B<F_GETOWN> problem invisible by implementing B<F_GETOWN> using " "B<F_GETOWN_EX>." msgstr "" "Eine Begrenzung der Linux-Systemaufrufkonventionen auf einigen Architekturen " "(insbesondere i386) bedeutet, dass, falls eine von B<F_GETOWN> " "zurückgelieferte (negative) Prozessgruppen-ID in den Bereich -1 bis -4095 " "fällt, dies von Glibc fälschlicherweise als Fehler im Systemaufruf " "interpretiert wird. Dann wird der Rückgabewert von B<fcntl>() -1 sein und " "I<errno> wird die (positive) Prozessgruppen-ID enthalten. Die Linux-" "spezifische Aktion B<F_GETOWN_EX> vermeidet dieses Problem. Seit Glibc " "Version 2.11 versteckt Glibc das Kernelproblem B<F_GETOWN>, indem " "B<F_GETOWN> mittels B<F_GETOWN_EX> implementiert wird." #. type: SS #, no-wrap msgid "F_SETOWN" msgstr "F_SETOWN" #. type: Plain text msgid "" "In Linux 2.4 and earlier, there is bug that can occur when an unprivileged " "process uses B<F_SETOWN> to specify the owner of a socket file descriptor as " "a process (group) other than the caller. In this case, B<fcntl>() can " "return -1 with I<errno> set to B<EPERM>, even when the owner process (group) " "is one that the caller has permission to send signals to. Despite this " "error return, the file descriptor owner is set, and signals will be sent to " "the owner." msgstr "" "Unter Linux 2.4 und älter gibt es einen Fehler, der auftreten kann, wenn ein " "unprivilegierter Prozess statt einem Aufrufenden B<F_SETOWN> verwendet, um " "den Eigentümer eines Socket-Dateideskriptors als Prozess(gruppe) " "festzulegen. In diesem Fall kann B<fcntl>() -1 mit I<errno> auf B<EPERM> " "gesetzt zurückliefern, selbst wenn der/die Eigentümerprozess(gruppe) " "dergestalt ist, dass der Aufrufende Rechte hat, ihr/ihm Signale zu senden. " "Trotz dieses zurückgelieferten Fehlers wird der Dateieigentümer gesetzt und " "Signale werden zum Eigentümer gesandt." #. type: SS #, no-wrap msgid "Deadlock detection" msgstr "Erkennung von Verklemmungen" #. type: Plain text msgid "" "The deadlock-detection algorithm employed by the kernel when dealing with " "B<F_SETLKW> requests can yield both false negatives (failures to detect " "deadlocks, leaving a set of deadlocked processes blocked indefinitely) and " "false positives (B<EDEADLK> errors when there is no deadlock). For example, " "the kernel limits the lock depth of its dependency search to 10 steps, " "meaning that circular deadlock chains that exceed that size will not be " "detected. In addition, the kernel may falsely indicate a deadlock when two " "or more processes created using the B<clone>(2) B<CLONE_FILES> flag place " "locks that appear (to the kernel) to conflict." msgstr "" "Der vom Kernel eingesetzte Algorithmus zur Erkennung von Verklemmungen beim " "Umgang mit B<F_SETLKW> kann sowohl falsch-negative (keine Erkennung von " "Verklemmungen, eine Gruppe von verklemmten Prozessen bleibt unbegrenzt " "blockiert) als auch falsch-positive (B<EDEADLK>-Fehler obwohl keine " "Verklemmung vorliegt) liefern. Beispielsweise begrenzt der Kernel die " "Sperrtiefe seiner Abhängigkeitssuche auf 10 Schritte, was bedeutet, dass " "zirkulare Verklemmungsketten, die diese Größe überschreiten, nicht erkannt " "werden. Zusätzlich kann der Kernel fälschlicherweise eine Verklemmung " "erkennen, wenn zwei oder mehr Prozesse, die mit dem Schalter B<CLONE_FILES> " "von B<clone>(2) Sperren setzen, die (dem Kernel) als im Konflikt stehend " "erscheinen." # #. http://marc.info/?l=linux-kernel&m=119013491707153&w=2 #. Reconfirmed by Jeff Layton #. From: Jeff Layton <jlayton <at> redhat.com> #. Subject: Re: Status of fcntl() mandatory locking #. Newsgroups: gmane.linux.file-systems #. Date: 2014-04-28 10:07:57 GMT #. http://thread.gmane.org/gmane.linux.file-systems/84481/focus=84518 #. type: Plain text msgid "" "The Linux implementation of mandatory locking is subject to race conditions " "which render it unreliable: a B<write>(2) call that overlaps with a lock " "may modify data after the mandatory lock is acquired; a B<read>(2) call " "that overlaps with a lock may detect changes to data that were made only " "after a write lock was acquired. Similar races exist between mandatory " "locks and B<mmap>(2). It is therefore inadvisable to rely on mandatory " "locking." msgstr "" #. type: SH #, no-wrap msgid "SEE ALSO" msgstr "SIEHE AUCH" #. type: Plain text msgid "" "B<dup2>(2), B<flock>(2), B<open>(2), B<socket>(2), B<lockf>(3), " "B<capabilities>(7), B<feature_test_macros>(7), B<lslocks>(8)" msgstr "" "B<dup2>(2), B<flock>(2), B<open>(2), B<socket>(2), B<lockf>(3), " "B<capabilities>(7), B<feature_test_macros>(7), B<lslocks>(8)" #. type: Plain text msgid "" "I<locks.txt>, I<mandatory-locking.txt>, and I<dnotify.txt> in the Linux " "kernel source directory I<Documentation/filesystems/> (on older kernels, " "these files are directly under the I<Documentation/> directory, and " "I<mandatory-locking.txt> is called I<mandatory.txt>)" msgstr "" "I<locks.txt>, I<mandatory-locking.txt> und I<dnotify.txt> in dem Linux-" "Kernelquelldateiverzeichnis I<Documentation/filesystems/>. (Bei älteren " "Kerneln befinden sich diese Dateien direkt unter dem Verzeichnis " "I<Documentation/> und I<mandatory-locking.txt> heißt I<mandatory.txt>.)" #. type: SH #, no-wrap msgid "COLOPHON" msgstr "KOLOPHON" #. type: Plain text msgid "" "This page is part of release 4.09 of the Linux I<man-pages> project. A " "description of the project, information about reporting bugs, and the latest " "version of this page, can be found at \\%https://www.kernel.org/doc/man-" "pages/." msgstr "" "Diese Seite ist Teil der Veröffentlichung 4.09 des Projekts Linux-I<man-" "pages>. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet " "werden können sowie die aktuelle Version dieser Seite finden sich unter \\" "%https://www.kernel.org/doc/man-pages/."
Attachment:
signature.asc
Description: Digital signature