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

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



Hallo Mitübersetzer,
jetzt hängt dieser E-Mail der Teil 2 (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: TP
#, no-wrap
msgid "B<F_GETLK> (I<struct flock *>)"
msgstr "B<F_GETLK> (I<struct flock *>)"

#. type: Plain text
msgid ""
"On input to this call, I<lock> describes a lock we would like to place on "
"the file.  If the lock could be placed, B<fcntl>()  does not actually place "
"it, but returns B<F_UNLCK> in the I<l_type> field of I<lock> and leaves the "
"other fields of the structure unchanged."
msgstr ""
"Als Eingabe zu diesem Aufruf beschreibt I<lock> eine Sperre, die auf diese "
"Datei angewandt werden soll. Falls die Sperre angewandt werden könnte, setzt "
"B<fcntl>() diese nicht wirklich, sondern liefert B<F_UNLCK> in dem Feld "
"I<l_type> von I<lock> und lässt die anderen Felder dieser Struktur "
"unverändert."

#. type: Plain text
msgid ""
"If one or more incompatible locks would prevent this lock being placed, then "
"B<fcntl>()  returns details about one of those locks in the I<l_type>, "
"I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>.  If the conflicting "
"lock is a traditional (process-associated) record lock, then the I<l_pid> "
"field is set to the PID of the process holding that lock.  If the "
"conflicting lock is an open file description lock, then I<l_pid> is set to "
"-1.  Note that the returned information may already be out of date by the "
"time the caller inspects it."
msgstr ""
"Falls eine oder mehrere inkompatible Sperren das Setzen dieser Sperre "
"verhinderten, dann liefert B<fcntl>() Details über eine dieser Sperren in "
"den Feldern I<l_type>, I<l_whence>, I<l_start> und I<l_len> von I<lock> "
"zurück. Falls die im Konflikt stehende Sperre eine traditionelle (Prozess-"
"orientierte) Datensatzsperre ist, dann wird das Feld I<l_pid> auf die PID "
"des Prozesses gesetzt, der die Sperre hält. Falls die in Konflikt stehende "
"Sperre eine offene Dateideskriptionssperre ist, dann wird I<l_pid> auf -1 "
"gesetzt. Beachten Sie, dass die zurückgelieferte Information zum Zeitpunkt "
"der Analyse durch den Aufrufenden bereits veraltet sein kann."

#. type: Plain text
msgid ""
"In order to place a read lock, I<fd> must be open for reading.  In order to "
"place a write lock, I<fd> must be open for writing.  To place both types of "
"lock, open a file read-write."
msgstr ""
"Um eine Lesesperre zu setzen, muss I<fd> zum Lesen offen sein. Um eine "
"Schreibsperre zu setzen, muss I<fd> zum Schreiben offen sein. Um beide Typen "
"setzen zu können, öffnen Sie eine Datei lese- und schreibbar."

#. type: Plain text
msgid ""
"When placing locks with B<F_SETLKW>, the kernel detects I<deadlocks>, "
"whereby two or more processes have their lock requests mutually blocked by "
"locks held by the other processes.  For example, suppose process A holds a "
"write lock on byte 100 of a file, and process B holds a write lock on byte "
"200.  If each process then attempts to lock the byte already locked by the "
"other process using B<F_SETLKW>, then, without deadlock detection, both "
"processes would remain blocked indefinitely.  When the kernel detects such "
"deadlocks, it causes one of the blocking lock requests to immediately fail "
"with the error B<EDEADLK>; an application that encounters such an error "
"should release some of its locks to allow other applications to proceed "
"before attempting regain the locks that it requires.  Circular deadlocks "
"involving more than two processes are also detected.  Note, however, that "
"there are limitations to the kernel's deadlock-detection algorithm; see BUGS."
msgstr ""
"Wenn Sperren mit B<F_SETLKW> gesetzt werden, erkennt der Kernel "
"I<Verklemmungen>, bei denen zwei oder mehr Prozesse ihre Sperr-Anfragen "
"gegenseitig durch Sperren, die von anderen Prozessen gehalten werden, "
"blockieren. Nehmen Sie beispielsweise an, Prozess A hält eine Schreibsperre "
"auf Byte 100 einer Datei und Prozess B hält eine Schreibsperre auf Byte 200. "
"Falls jeder Prozess dann versucht, mit B<F_SETLKW> die vom anderen Prozess "
"bereits gesperrten Bytes zu sperren, würden ohne Erkennung von Verklemmungen "
"beide Prozesse unbegrenzt blockiert bleiben. Wenn der Kernel solche "
"Verklemmungen erkennt, sorgt er dafür, dass eine der blockierenden "
"Sperranfragen sofort mit dem Fehler B<EDEADLK> fehlschlägt. Eine Anwendung, "
"die auf einen solchen Fehler trifft, sollte einige ihrer Sperren freigeben, "
"um anderen Anwendungen das Fortfahren zu erlauben, bevor sie erneut "
"versucht, die von ihr benötigten Sperren zu erlangen. Zirkuläre "
"Verklemmungen mit mehr als zwei Prozessen werden auch erkannt. Beachten Sie "
"aber, dass es eine Begrenzung der Erkennung von Verklemmungen im Kernel "
"gibt; siehe FEHLER."

#. type: Plain text
msgid ""
"As well as being removed by an explicit B<F_UNLCK>, record locks are "
"automatically released when the process terminates."
msgstr ""
"Datensatzsperren werden durch ein explizites B<F_UNLCK> entfernt und auch "
"freigegeben, wenn der Prozess sich beendet."

#. type: Plain text
msgid ""
"Record locks are not inherited by a child created via B<fork>(2), but are "
"preserved across an B<execve>(2)."
msgstr ""
"Datensatzsperren werden nicht von einem durch B<fork>(2) erstellten Kind "
"geerbt, aber über ein B<execve>(2) hinweg erhalten."

#. type: Plain text
msgid ""
"Because of the buffering performed by the B<stdio>(3)  library, the use of "
"record locking with routines in that package should be avoided; use "
"B<read>(2)  and B<write>(2)  instead."
msgstr ""
"Aufgrund des durch die B<stdio>(3)-Bibliothek durchgeführten Pufferns sollte "
"die Verwendung von Datensatzsperren mit Routinen aus diesem Paket vermieden "
"werden; verwenden Sie stattdessen B<read>(2) und B<write>(2)."

#. type: Plain text
msgid ""
"The record locks described above are associated with the process (unlike the "
"open file description locks described below).  This has some unfortunate "
"consequences:"
msgstr ""
"Die weiter oben beschriebenen Datensatzsperren werden dem Prozess zugeordnet "
"(anders als die weiter unten beschriebenen Dateideskriptionssperren). Dies "
"hat einige unglückliche Konsequenzen:"

#. type: IP
#, no-wrap
msgid "*"
msgstr "*"

#.  (Additional file descriptors referring to the same file
#.  may have been obtained by calls to
#.  .BR open "(2), " dup "(2), " dup2 "(2), or " fcntl ().)
#. type: Plain text
msgid ""
"If a process closes I<any> file descriptor referring to a file, then all of "
"the process's locks on that file are released, regardless of the file "
"descriptor(s) on which the locks were obtained.  This is bad: it means that "
"a process can lose its locks on a file such as I</etc/passwd> or I</etc/"
"mtab> when for some reason a library function decides to open, read, and "
"close the same file."
msgstr ""
"Falls ein Prozess I<irgendeinen> Dateideskriptor mit Bezug zu einer Datei "
"schließt, dann werden alle Sperren des Prozesses für diese Datei aufgehoben, "
"unabhängig von den Dateideskriptor(en), mit denen diese Sperren erworben "
"wurden. Das ist schlecht: Es bedeutet, dass ein Prozess seine Sperren auf "
"eine Datei wie I</etc/passwd> oder I</etc/mtab> verlieren kann, wenn aus "
"irgendeinem Grund eine Bibliotheksfunktion sich entscheidet, die gleiche "
"Datei zu öffnen, zu lesen und zu schließen."

#. type: Plain text
msgid ""
"The threads in a process share locks.  In other words, a multithreaded "
"program can't use record locking to ensure that threads don't simultaneously "
"access the same region of a file."
msgstr ""
"Die Threads in einem Prozess nutzen die Sperren gemeinsam. Mit anderen "
"Worten, ein Programm mit mehreren Threads kann Datensatzsperren nicht benutzen, um "
"sicherzustellen, dass die Threads nicht simultan auf die gleichen Regionen "
"einer Datei zugreifen."

#. type: Plain text
msgid "Open file description locks solve both of these problems."
msgstr "Offene Dateideskriptionssperren lösen beide Probleme."

#. type: SS
#, no-wrap
msgid "Open file description locks (non-POSIX)"
msgstr "Offene Dateideskriptionssperren (nicht POSIX)"

#.  FIXME . Review progress into POSIX
#.  http://austingroupbugs.net/view.php?id=768
#. type: Plain text
msgid ""
"Open file description locks are advisory byte-range locks whose operation is "
"in most respects identical to the traditional record locks described above.  "
"This lock type is Linux-specific, and available since Linux 3.15.  (There is "
"a proposal with the Austin Group to include this lock type in the next "
"revision of POSIX.1.)  For an explanation of open file descriptions, see "
"B<open>(2)."
msgstr ""

#. type: Plain text
msgid ""
"The principal difference between the two lock types is that whereas "
"traditional record locks are associated with a process, open file "
"description locks are associated with the open file description on which "
"they are acquired, much like locks acquired with B<flock>(2).  Consequently "
"(and unlike traditional advisory record locks), open file description locks "
"are inherited across B<fork>(2)  (and B<clone>(2)  with B<CLONE_FILES>), and "
"are only automatically released on the last close of the open file "
"description, instead of being released on any close of the file."
msgstr ""

#. type: Plain text
msgid ""
"Conflicting lock combinations (i.e., a read lock and a write lock or two "
"write locks)  where one lock is an open file description lock and the other "
"is a traditional record lock conflict even when they are acquired by the "
"same process on the same file descriptor."
msgstr ""
"Im Konflikt stehende Kombinationen von Sperren (d.h. eine Lese-Sperre und "
"eine Schreib-Sperre oder zwei Schreib-Sperren), wobei eine Sperre eine "
"offene Dateideskriptorsperre und die andere eine traditionelle "
"Datensatzsperre ist, sind selbst dann im Konflikt, wenn sie vom gleichen "
"Prozess auf dem gleichen Dateideskriptor aufgenommen wurden."

#. type: Plain text
msgid ""
"Open file description locks placed via the same open file description (i.e., "
"via the same file descriptor, or via a duplicate of the file descriptor "
"created by B<fork>(2), B<dup>(2), B<fcntl>()  B<F_DUPFD>, and so on) are "
"always compatible: if a new lock is placed on an already locked region, then "
"the existing lock is converted to the new lock type.  (Such conversions may "
"result in splitting, shrinking, or coalescing with an existing lock as "
"discussed above.)"
msgstr ""
"Offene Dateideskriptionssperren, die über die gleichen offenen "
"Dateideskriptionen (d.h. über den gleichen Dateideskriptor oder über durch "
"B<fork>(2), B<dup>(2), B<fcntl>() B<F_DUPFD> und so weiter erstellte "
"Duplikate des Dateideskriptors) gesetzt werden, sind immer kompatibel: Falls "
"auf einen bereits gesperrten Bereich eine neue Sperre gesetzt wird, wird die "
"existierende Sperre in den neuen Sperrtyp umgewandelt. (Solche Umwandlungen "
"können wie oben beschrieben zum Teilen, Verkleinern oder Verschmelzen mit "
"einer existierenden Sperre führen.)"

#. type: Plain text
msgid ""
"On the other hand, open file description locks may conflict with each other "
"when they are acquired via different open file descriptions.  Thus, the "
"threads in a multithreaded program can use open file description locks to "
"synchronize access to a file region by having each thread perform its own "
"B<open>(2)  on the file and applying locks via the resulting file descriptor."
msgstr ""
"Auf der anderen Seite können offene Dateideskriptionssperren zueinander im "
"Konflikt stehen, wenn sie über verschiedene offene Dateideskriptionen "
"erlangt wurden. Daher können die Threads in einem Programm mit mehreren Threads "
"offene Dateideskriptoren dazu verwenden, um den Zugriff auf Dateiregionen zu "
"koordinieren, indem jeder Thread sein eigenes B<open>(2) auf der Datei "
"durchführt und die Sperren über den entstehenden Dateideskriptor anwendet."

#. type: Plain text
msgid ""
"As with traditional advisory locks, the third argument to B<fcntl>(), "
"I<lock>, is a pointer to an I<flock> structure.  By contrast with "
"traditional record locks, the I<l_pid> field of that structure must be set "
"to zero when using the commands described below."
msgstr ""

#. type: Plain text
msgid ""
"The commands for working with open file description locks are analogous to "
"those used with traditional locks:"
msgstr ""
"Die Befehle für den Umgang mit offenen Dateideskriptionssperren sind analog "
"zu denen, die mit traditionellen Sperren verwandt werden:"

#. type: TP
#, no-wrap
msgid "B<F_OFD_SETLK> (I<struct flock *>)"
msgstr "B<F_OFD_SETLK> (I<struct flock *>)"

#. type: Plain text
msgid ""
"Acquire an open file description lock (when I<l_type> is B<F_RDLCK> or "
"B<F_WRLCK>)  or release an open file description lock (when I<l_type> is "
"B<F_UNLCK>)  on the bytes specified by the I<l_whence>, I<l_start>, and "
"I<l_len> fields of I<lock>.  If a conflicting lock is held by another "
"process, this call returns -1 and sets I<errno> to B<EAGAIN>."
msgstr ""
"Erlangt eine offene Dateideskriptorensperre (wenn I<l_type> B<F_RDLCK> oder "
"B<F_WRLCK> ist) oder gibt eine offene Dateideskriptorensperre frei (wenn "
"I<l_type> B<F_UNLCK> ist), für die Bytes, die durch die Felder I<l_whence>, "
"I<l_start> und I<l_len> festgelegt sind. Falls durch einen anderen Prozess "
"eine im Konflikt stehende Sperre gehalten wird, liefert der Aufruf -1 zurück "
"und setzt I<errno> auf B<EAGAIN>."

#. type: TP
#, no-wrap
msgid "B<F_OFD_SETLKW> (I<struct flock *>)"
msgstr "B<F_OFD_SETLKW> (I<struct flock *>)"

#. type: Plain text
msgid ""
"As for B<F_OFD_SETLK>, but if a conflicting lock is held on the file, then "
"wait for that lock to be released.  If a signal is caught while waiting, "
"then the call is interrupted and (after the signal handler has returned) "
"returns immediately (with return value -1 and I<errno> set to B<EINTR>; see "
"B<signal>(7))."
msgstr ""
"Wie bei B<F_OFD_SETLK>, aber falls eine im Konflikt stehende Sperre auf der "
"Datei gehalten wird, dann wird auf die Freigabe dieser Sperre gewartet. "
"Falls beim Warten ein Signal gefangen wird, dann wird der Aufruf "
"unterbrochen und (nachdem der Signal-Handler zurückgekehrt ist) sofort "
"zurückgekehrt (mit einem Rückgabewert -1 und I<errno> auf B<EINTR> gesetzt, "
"siehe B<signal>(7))."

#. type: TP
#, no-wrap
msgid "B<F_OFD_GETLK> (I<struct flock *>)"
msgstr "B<F_OFD_GETLK> (I<struct flock *>)"

#. type: Plain text
msgid ""
"On input to this call, I<lock> describes an open file description lock we "
"would like to place on the file.  If the lock could be placed, B<fcntl>()  "
"does not actually place it, but returns B<F_UNLCK> in the I<l_type> field of "
"I<lock> and leaves the other fields of the structure unchanged.  If one or "
"more incompatible locks would prevent this lock being placed, then details "
"about one of these locks are returned via I<lock>, as described above for "
"B<F_GETLK>."
msgstr ""
"Bei der Eingabe zu diesem Aufruf beschreibt I<lock> eine offene "
"Dateideskriptorsperre, die auf der Datei gesetzt werden soll. Falls die "
"Sperre gesetzt werden könnte, setzt B<fcntl>() nicht wirklich, sondern "
"liefert im Feld I<l_type> von I<lock> B<F_UNLCK> zurück und lässt die "
"anderen Felder der Struktur unverändert. Falls eine oder mehrere "
"inkompatible Sperren das Setzen dieser Sperre behinderten, werden die "
"Details über eine dieser Sperren mittels I<lock>, wie oben für B<F_GETLK> "
"beschrieben, zurückgeliefert."

#.  commit 57b65325fe34ec4c917bc4e555144b4a94d9e1f7
#. type: Plain text
msgid ""
"In the current implementation, no deadlock detection is performed for open "
"file description locks.  (This contrasts with process-associated record "
"locks, for which the kernel does perform deadlock detection.)"
msgstr ""
"In der aktuellen Implementierung wird nicht auf Verklemmungen für offene "
"Dateideskriptorensperren geprüft. (Dies steht im Gegensatz zu den "
"prozessorientierten Datensatzsperren, bei denen der Kernel eine Erkennung "
"von Verklemmungen durchführt.)"

#. type: SS
#, no-wrap
msgid "Mandatory locking"
msgstr "Pflichtsperren"

#. type: Plain text
msgid ""
"I<Warning>: the Linux implementation of mandatory locking is unreliable.  "
"See BUGS below.  Because of these bugs, and the fact that the feature is "
"believed to be little used, since Linux 4.5, mandatory locking has been made "
"an optional feature, governed by a configuration option "
"(B<CONFIG_MANDATORY_FILE_LOCKING>).  This is an initial step toward removing "
"this feature completely."
msgstr ""
"I<Warnung>: Die Linux-Implementierung der Pflichtsperren ist unzuverlässig. "
"Siehe FEHLER unten. Aufgrund dieser Fehler und der Tatsache, dass davon "
"ausgegangen wird, dass diese Funktionalität wenig genutzt wird, sind die "
"Pflichtsperren seit Linux 4.5 eine optionale Funktionalität, die durch eine "
"Konfigurationsoption (B<CONFIG_MANDATORY_FILE_LOCKING>) gesteuert werden. "
"Dies ist der erste Schritt hin zur kompletten Entfernung dieser "
"Funktionalität."

#. type: Plain text
msgid ""
"By default, both traditional (process-associated) and open file description "
"record locks are advisory.  Advisory locks are not enforced and are useful "
"only between cooperating processes."
msgstr ""

#. type: Plain text
#, fuzzy
msgid ""
"Both lock types can also be mandatory.  Mandatory locks are enforced for all "
"processes.  If a process tries to perform an incompatible access (e.g., "
"B<read>(2)  or B<write>(2))  on a file region that has an incompatible "
"mandatory lock, then the result depends upon whether the B<O_NONBLOCK> flag "
"is enabled for its open file description.  If the B<O_NONBLOCK> flag is not "
"enabled, then the system call is blocked until the lock is removed or "
"converted to a mode that is compatible with the access.  If the "
"B<O_NONBLOCK> flag is enabled, then the system call fails with the error "
"B<EAGAIN>."
msgstr ""
"Beide Sperrtypen können auch verpflichtend sein. Verpflichtende Sperren "
"werden für alle Prozesse durchgesetzt. Falls ein Prozess einen inkompatiblen "
"Zugriff auf einen Dateibereich versucht (z.B. B<read>(2) oder B<write>(2)), "
"der eine inkompatible verpflichtende Sperre hat, dann hängt das Ergebnis "
"davon ab, ob der Schalter B<O_NONBLOCK> für seinen FIXME aktiviert ist. "
"Falls der Schalter B<O_NONBLOCK> nicht aktiviert ist, wird der Systemaufruf "
"blockiert, bis die Sperre entfernt oder in einen Modus umgewandelt wurde, "
"der mit dem Zugriff kompatibel ist. Falls der Schalter B<O_NONBLOCK> "
"aktiviert ist, wird der Systemaufruf mit dem Fehler B<EAGAIN> fehlschlagen."

#. type: Plain text
msgid ""
"To make use of mandatory locks, mandatory locking must be enabled both on "
"the filesystem that contains the file to be locked, and on the file itself.  "
"Mandatory locking is enabled on a filesystem using the \"-o mand\" option to "
"B<mount>(8), or the B<MS_MANDLOCK> flag for B<mount>(2).  Mandatory locking "
"is enabled on a file by disabling group execute permission on the file and "
"enabling the set-group-ID permission bit (see B<chmod>(1)  and B<chmod>(2))."
msgstr ""
"Um verpflichtende Sperren zu verwenden, müssen verpflichtende Sperren sowohl "
"auf dem Dateisystem, das die zu sperrende Datei enthält, aktiviert werden "
"als auch auf der Datei selbst. Verpflichtende Sperren werden auf "
"Dateisystemen mit der Option »-o mand« von B<mount>(8) oder dem Schalter "
"B<MS_MANDLOCK> für B<mount>(2) aktiviert. Verpflichtende Sperren werden für "
"eine Datei aktiviert, indem das Ausführrecht für die Datei entfernt und das "
"»set-group-ID«-Rechte-Bit aktiviert wird (siehe B<chmod>(1) und B<chmod>(2))."

#. type: Plain text
msgid ""
"Mandatory locking is not specified by POSIX.  Some other systems also "
"support mandatory locking, although the details of how to enable it vary "
"across systems."
msgstr ""
"Verpflichtende Sperren werden nicht durch POSIX spezifiziert. Einige andere "
"Systeme unterstützen auch verpflichtende Sperren, allerdings unterscheiden "
"sich die Details zur Aktivierung zwischen den Systemen."

#. type: SS
#, no-wrap
msgid "Managing signals"
msgstr "Signale verwalten"

#. type: Plain text
msgid ""
"B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> and "
"B<F_SETSIG> are used to manage I/O availability signals:"
msgstr ""
"B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> und "
"B<F_SETSIG> werden zur Verwaltung der E/A-Verfügbarkeitssignale verwandt:"

#. type: TP
#, no-wrap
msgid "B<F_GETOWN> (I<void>)"
msgstr "B<F_GETOWN> (I<void>)"

# FIXME Is there an ID after the first "process group" missing?
#. type: Plain text
msgid ""
"Return (as the function result)  the process ID or process group currently "
"receiving B<SIGIO> and B<SIGURG> signals for events on file descriptor "
"I<fd>.  Process IDs are returned as positive values; process group IDs are "
"returned as negative values (but see BUGS below).  I<arg> is ignored."
msgstr ""
"Liefert (als Funktionsergebnis) die Prozesskennung oder Prozessgruppe "
"zurück, die derzeit B<SIGIO>- und B<SIGURG>-Signale für Ereignisse auf "
"Dateideskriptor I<fd> erhält. Prozesskennungen werden als positive Werte, "
"Prozessgruppenkennungen als negative Werte zurückgeliefert (siehe aber auch "
"FEHLER unten). I<arg> wird ignoriert."

#. type: TP
#, no-wrap
msgid "B<F_SETOWN> (I<int>)"
msgstr "B<F_SETOWN> (I<int>)"

#. type: Plain text
msgid ""
"Set the process ID or process group ID that will receive B<SIGIO> and "
"B<SIGURG> signals for events on the file descriptor I<fd>.  The target "
"process or process group ID is specified in I<arg>.  A process ID is "
"specified as a positive value; a process group ID is specified as a negative "
"value.  Most commonly, the calling process specifies itself as the owner "
"(that is, I<arg> is specified as B<getpid>(2))."
msgstr ""
"Setzt die Prozesskennung oder Prozessgruppenkennung, die B<SIGIO>- und "
"B<SIGURG>-Signale für Ereignisse auf dem Dateideskriptor I<fd> erhalten "
"wird. Der Zielprozess oder die Zielprozessgruppe wird in I<arg> festgelegt. "
"Eine Prozesskennung wird als positiver, eine Prozessgruppenkennung wird als "
"negativer Wert festgelegt. Häufig legt sich der aufrufende Prozess als der "
"Eigentümer fest (d.h. I<arg> wird als B<getpid>(2) festgelegt)."

#. type: Plain text
msgid ""
"As well as setting the file descriptor owner, one must also enable "
"generation of signals on the file descriptor.  This is done by using the "
"B<fcntl>()  B<F_SETFL> command to set the B<O_ASYNC> file status flag on the "
"file descriptor.  Subsequently, a B<SIGIO> signal is sent whenever input or "
"output becomes possible on the file descriptor.  The B<fcntl>()  B<F_SETSIG> "
"command can be used to obtain delivery of a signal other than B<SIGIO>."
msgstr ""
"Neben dem Setzen des Dateideskriptoreigentümers muss auch die Erzeugung von "
"Signalen auf dem Dateideskriptor aktiviert werden. Dies erfolgt durch den "
"Befehl B<fcntl>() B<F_SETFL>, um den Dateistatusschalter B<SIGIO> zu setzen, "
"wannimer Ein- oder Ausgabe auf dem Dateideskriptor möglich wird. Der Befehl "
"B<fcntl>() B<F_SETSIG> kann zum Erhalt des Empfangs von Signalen neben "
"B<SIGIO> verwandt werden."

#. type: Plain text
msgid ""
"Sending a signal to the owner process (group) specified by B<F_SETOWN> is "
"subject to the same permissions checks as are described for B<kill>(2), "
"where the sending process is the one that employs B<F_SETOWN> (but see BUGS "
"below).  If this permission check fails, then the signal is silently "
"discarded.  I<Note>: The B<F_SETOWN> operation records the caller's "
"credentials at the time of the B<fcntl>()  call, and it is these saved "
"credentials that are used for the permission checks."
msgstr ""
"Senden von Signalen an den durch B<F_SETOWN> festgelegten Prozesseigner "
"(Gruppe) unterliegt den gleichen Rechteprüfungen wie sie in B<kill>(2) "
"beschrieben sind, wobei der sendende Prozess derjenige ist, der B<F_SETOWN> "
"einsetzt (siehe aber FEHLER unten). Falls diese Rechteprüfung fehlschlägt "
"wird das Signal ohne Rückmeldung verworfen. I<Hinweis>: Die Aktion "
"B<F_SETOWN> notiert die Berechtigungen des Aufrufenden zum Zeitpunkt des "
"Aufrufs von B<fcntl>() und es sind diese gespeicherten Berechtigungen, die "
"für die Rechteüberprüfung verwandt werden."

#
#.  The following appears to be rubbish.  It doesn't seem to
#.  be true according to the kernel source, and I can write
#.  a program that gets a terminal-generated SIGIO even though
#.  it is not the foreground process group of the terminal.
#.  -- MTK, 8 Apr 05
#.  If the file descriptor
#.  .I fd
#.  refers to a terminal device, then SIGIO
#.  signals are sent to the foreground process group of the terminal.
#. type: Plain text
msgid ""
"If the file descriptor I<fd> refers to a socket, B<F_SETOWN> also selects "
"the recipient of B<SIGURG> signals that are delivered when out-of-band data "
"arrives on that socket.  (B<SIGURG> is sent in any situation where "
"B<select>(2)  would report the socket as having an \"exceptional condition"
"\".)"
msgstr ""
"Falls der Dateideskriptor I<fd> sich auf ein Socket bezieht, wählt "
"B<F_SETOWN> auch den Empfänger des Signals B<SIGURG>, das ausgeliefert wird, "
"wenn Außerbanddaten beim Socket eintreffen, aus. (B<SIGURG> wird in jeder "
"Situation gesandt, in der B<select>(2) berichtete, dass das Socket eine "
"»außergewöhnliche Bedingung« habe.)"

#. type: Plain text
msgid ""
"The following was true in 2.6.x kernels up to and including kernel 2.6.11:"
msgstr "Das folgende stimmte in 2.6.x-Kerneln bis einschließlich 2.6.11:"

#.  The relevant place in the (2.6) kernel source is the
#.  'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005
#.  send_sigurg()/send_sigurg_to_task() bypasses
#.  kill_fasync()/send_sigio()/send_sigio_to_task()
#.  to directly call send_group_sig_info()
#. 	-- MTK, Apr 2005 (kernel 2.6.11)
#. type: Plain text
msgid ""
"If a nonzero value is given to B<F_SETSIG> in a multithreaded process "
"running with a threading library that supports thread groups (e.g., NPTL), "
"then a positive value given to B<F_SETOWN> has a different meaning: instead "
"of being a process ID identifying a whole process, it is a thread ID "
"identifying a specific thread within a process.  Consequently, it may be "
"necessary to pass B<F_SETOWN> the result of B<gettid>(2)  instead of "
"B<getpid>(2)  to get sensible results when B<F_SETSIG> is used.  (In current "
"Linux threading implementations, a main thread's thread ID is the same as "
"its process ID.  This means that a single-threaded program can equally use "
"B<gettid>(2)  or B<getpid>(2)  in this scenario.)  Note, however, that the "
"statements in this paragraph do not apply to the B<SIGURG> signal generated "
"for out-of-band data on a socket: this signal is always sent to either a "
"process or a process group, depending on the value given to B<F_SETOWN>."
msgstr ""
"Falls in einem Prozess mit mehreren Threads, der mit einer Threading-Bibliothek "
"läuft, die Thread-Gruppen unterstützt (z.B. NPTL), ein von Null "
"verschiedener Wert an B<F_SETSIG> übergeben wird, dann hat ein an "
"B<F_SETOWN> übergebener positiver Wert eine andere Bedeutung: Statt eine "
"Prozesskennung zu sein, die einen gesamten Prozess identifiziert, ist es "
"eine Thread-Kennung, die einen bestimmten Prozess innerhalb des Threads "
"identifiziert. Konsequenterweise kann es notwendig sein, B<F_SETOWN> das "
"Ergebnis von B<gettid>(2) statt von B<getpid>(2) zu übergeben, um "
"vernünftige Ergebnisse zu erhalten, wenn B<F_SETSIG> benutzt wird. (In "
"aktuellen Linux-Threading-Implementierungen ist die Kennung des Haupt-"
"Threads identisch zu seiner Prozesskennung. Das bedeutet, dass ein Programm "
"mit nur einem einzigen Thread in diesem Szenario genauso B<gettid>(2) oder "
"B<getpid>(2) verwenden kann.) Beachten Sie allerdings, dass die Aussage in "
"diesem Absatz nicht auf das Signal B<SIGURG> für Außerbanddaten für ein "
"Socket zutreffen: Dieses Signal wird immer zu einem Prozess oder einer "
"Prozessgruppe gesandt, abhängig vom in B<F_SETOWN> übergebenen Wert."

#. type: Plain text
msgid ""
"The above behavior was accidentally dropped in Linux 2.6.12, and won't be "
"restored.  From Linux 2.6.32 onward, use B<F_SETOWN_EX> to target B<SIGIO> "
"and B<SIGURG> signals at a particular thread."
msgstr ""
"Das obige Verhalten wurde in Linux 2.6.12 versehentlich deaktivert und wird "
"nicht mehr wiederhergestellt. Seit Linux 2.6.32 verwenden Sie "
"B<F_SETOWN_EX>, um die Signale B<SIGIO> und B<SIGURG> auf einen bestimmten "
"Thread anzuwenden."

Attachment: signature.asc
Description: Digital signature


Reply to: