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

[RFR] man://manpages-de/man2/fcntl.2.po (Teil 6)



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


Reply to: