[RFR] man://manpages-de/man3/setjmp.3.po

22/09/2016 - 18:50 von Helge Kreutzmann | Report spam
This is a MIME-formatted message. If you see this text it means that your
E-mail software does not support MIME-formatted messages.




Hallo Mità¼bersetzer,
die angehà¤ngte Handbuchseite von knapp 60 Zeichenketten ist bis auf 5
Stà¼ck komplett à¼bersetzt.

Fà¼r konstruktive Kritik an der àœbersetzung wà¤re ich wie à¼blich sehr
dankbar.

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/


# German translation of manpages
# This file is distributed under the same license as the manpages-de package.
# Copyright © of this file:
# Patrick Rother <krd@gulu.net>, 1996.
# Chris Leick <c.leick@vollbio.de>, 2010-2014.
# Helge Kreutzmann <debian@helgefjell.de>, 2016.
msgid ""
msgstr ""
"Project-Id-Version: manpages-de 1.4-1"
"POT-Creation-Date: 2016-07-23 11:31+0200"
"PO-Revision-Date: 2016-09-22 17:32+0200"
"Last-Translator: Dr. Tobias Quathamer <toddy@debian.org>"
"Language-Team: German <debian-l10n-german@lists.debian.org>"
"Language: de"
"MIME-Version: 1.0"
"Content-Type: text/plain; charset=UTF-8"
"Content-Transfer-Encoding: 8bit"
"Plural-Forms: nplurals=2; plural=(n != 1);"
"X-Generator: Lokalize 2.0"

#. type: TH
#, no-wrap
msgid "SETJMP"
msgstr "SETJMP"

#. type: TH
#, no-wrap
msgid "2016-03-15"
msgstr "15. Mà¤rz 2016"

#. type: TH
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr "Linux-Programmierhandbuch"

#. type: SH
#, no-wrap
msgid "NAME"
msgstr "BEZEICHNUNG"

#. type: Plain text
msgid "setjmp, sigsetjmp, longjmp, siglongjmp - performing a nonlocal goto"
msgstr ""
"setjmp, sigsetjmp, longjmp, siglongjmp - Nichtlokale Verzweigung durchfà¼hren"

#. type: SH
#, no-wrap
msgid "SYNOPSIS"
msgstr "àœBERSICHT"

#. type: Plain text
msgid "B<#include E<lt>setjmp.hE<gt>>"
msgstr "B<#include E<lt>setjmp.hE<gt>>"

#. type: Plain text
#, no-wrap
msgid ""
"B<int setjmp(jmp_buf >I<env>B<);>"
"B<int sigsetjmp(sigjmp_buf >I<env>B<, int >I<savesigs>B<);>"
msgstr ""
"B<int setjmp(jmp_buf >I<env>B<);>"
"B<int sigsetjmp(sigjmp_buf >I<env>B<, int >I<savesigs>B<);>"

#. type: Plain text
#, no-wrap
msgid ""
"B<void longjmp(jmp_buf >I<env>B<, int >I<val>B<);>"
"B<void siglongjmp(sigjmp_buf >I<env>B<, int >I<val>B<);>"
msgstr ""
"B<void longjmp(jmp_buf >I<env>B<, int >I<val>B<);>"
"B<void siglongjmp(sigjmp_buf >I<env>B<, int >I<val>B<);>"

#. type: Plain text
msgid ""
"Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
msgstr "Mit Glibc erforderliche Makros (siehe B<feature_test_macros>(7)):"

#. type: Plain text
#, no-wrap
msgid ""
"B<setjmp>():"
" see NOTES."
msgstr ""
"B<setjmp>():"
" siehe ANMERKUNGEN."

#. type: Plain text
msgid "B<sigsetjmp>(): _POSIX_C_SOURCE"
msgstr "B<sigsetjmp>(): _POSIX_C_SOURCE"

#. type: SH
#, no-wrap
msgid "DESCRIPTION"
msgstr "BESCHREIBUNG"

#. type: Plain text
msgid ""
"The functions described on this page are used for performing \"nonlocal gotos"
"\": transferring execution from one function to a predetermined location in "
"another function. The B<setjmp>() function dynamically establishes the "
"target to which control will later be transferred, and B<longjmp>() "
"performs the transfer of execution."
msgstr ""
"Die auf dieser Seite beschriebenen Funktionen werden fà¼r »nichtlokale Gotos« "
"verwandt: àœbergabe der Ausfà¼hrung von einer Funktion zu einer vorbestimmten "
"Stelle in einer anderen Funktion. Die Funktion B<setjmp>() etabliert "
"dynamisch das Ziel, zu dem die Steuerung spà¤ter à¼bergeben wird und "
"B<longjmp>() fà¼hrt den Ausfà¼hrungstransfer aus."

#. type: Plain text
msgid ""
"The B<setjmp>() function saves various information about the calling "
"environment (typically, the stack pointer, the instruction pointer, possibly "
"the values of other registers and the signal mask) in the buffer I<env> for "
"later use by B<longjmp>(). In this case, B<setjmp>() returns 0."
msgstr ""
"Die Funktion B<setjmp>() speichert verschiedene Informationen à¼ber die "
"aufrufende Umgebung (typischerweise den Stack-Zeiger, den Anweisungszeiger, "
"möglicherweise die Werte von anderen Registern und die Signalmaske) im "
"Puffer I<env> fà¼r die spà¤tere Verwendung durch B<longjmp>(). In diesem Fall "
"liefert B<setjmp>() 0 zurà¼ck."

#. type: Plain text
msgid ""
"The B<longjmp>() function uses the information saved in I<env> to transfer "
"control back to the point where B<setjmp>() was called and to restore "
"(\"rewind\") the stack to its state at the time of the B<setjmp>() call. "
"In addition, and depending on the implementation (see NOTES), the values of "
"some other registers and the process signal mask may be restored to their "
"state at the time of the B<setjmp>() call."
msgstr ""
"Die Funktion B<longjmp>() verwendet die in I<env> gespeicherten "
"Informationen, um die Steuerung zu dem Punkt zurà¼ckzuà¼bergeben, an dem "
"B<setjmp>() aufgerufen worden war und den Stack auf seinem Zustand zum "
"Zeitpunkt des Aufrufs von B<setjmp>() wiederherzustellen (»zurà¼ckzuspulen«). "
"Zusà¤tzlich und abhà¤ngig von der Implementierung (siehe ANMERKUNGEN) können "
"die Werte einiger anderer Register und der Prozesssignalmaske auf den Wert "
"zum Zeitpunkt des Aufrufs von B<setjmp>() wiederhergestellt werden."

#. type: Plain text
msgid ""
"Following a successful B<longjmp>(), execution continues as if B<setjmp>() "
"had returned for a second time. This \"fake\" return can be distinguished "
"from a true B<setjmp>() call because the \"fake\" return returns the value "
"provided in I<val>. If the programmer mistakenly passes the value 0 in "
"I<val>, the \"fake\" return will instead return 1."
msgstr ""
"Nach einem erfolgreichen B<longjmp>() fà¤hrt die Ausfà¼hrung so fort, als ob "
"B<setjmp>() ein zweites Mal zurà¼ckgekehrt wà¤re. Diese »Schummel«-Rà¼ckkehr "
"kann von einem echten Aufruf von B<setjmp>() unterschieden werden, da die "
"»Schummel«-Rà¼ckkehr den in I<val> bereitgestellten Wert zurà¼ckliefert. Falls "
"der Programmierer fehlerhafterweise den Wert 0 in I<val> weitergibt, wird "
"die »Schummel«-Rà¼ckkehr stattdessen 1 zurà¼ckliefern."

#. type: SS
#, no-wrap
msgid "sigsetjmp() and siglongjmp()"
msgstr "sigsetjmp() und siglongjmp()"

#. type: Plain text
msgid ""
"B<sigsetjmp>() and B<siglongjmp>() also perform nonlocal gotos, but "
"provide predictable handling of the process signal mask."
msgstr ""
"B<sigsetjmp>() und B<siglongjmp>() fà¼hren auch nichtlokale Gotos durch, "
"stellen aber eine vorhersehbare Behandlung der Prozesssignalmaske bereit."

#. type: Plain text
msgid ""
"If, and only if, the I<savesigs> argument provided to B<sigsetjmp>() is "
"nonzero, the process's current signal mask is saved in I<env> and will be "
"restored if a B<siglongjmp>() is later performed with this I<env>."
msgstr ""
"Nur wenn das an B<sigsetjmp>() à¼bergebene Argument I<savesigs> nicht Null "
"ist, wird die aktuelle Signalmaske des Prozesses in I<env> gespeichert und "
"wiederhergestellt, wenn spà¤ter mit diesem I<env> ein B<siglongjmp> "
"durchgefà¼hrt wird."

#. type: SH
#, no-wrap
msgid "RETURN VALUE"
msgstr "RàœCKGABEWERT"

#. type: Plain text
msgid ""
"B<setjmp>() and B<sigsetjmp>() return 0 when called directly; on the \"fake"
"\" return that occurs after B<longjmp>() or B<siglongjmp>(), the nonzero "
"value specified in I<val> is returned."
msgstr ""
"B<setjmp>() und B<sigsetjmp>() geben 0 zurà¼ck, wenn sie direkt aufgerufen "
"wurden; bei dem \"nachgeahmten\" Zurà¼ckkehren, das nach B<longjmp>() und "
"B<siglongjmp>() auftritt, wird der in I<val> angegebene Nichtnull-Wert "
"zurà¼ckgegeben."

#. type: Plain text
msgid "The B<longjmp>() or B<siglongjmp>() functions do not return."
msgstr "Die Funktionen B<longjmp>() oder B<siglongjmp>() kehren nicht zurà¼ck."

#. type: SH
#, no-wrap
msgid "ATTRIBUTES"
msgstr "ATTRIBUTE"

#. type: Plain text
msgid ""
"For an explanation of the terms used in this section, see B<attributes>(7)."
msgstr ""
"Siehe B<attributes>(7) fà¼r eine Erlà¤uterung der in diesem Abschnitt "
"verwandten Ausdrà¼cke."

#. type: tbl table
#, no-wrap
msgid "Interface"
msgstr "Schnittstelle"

#. type: tbl table
#, no-wrap
msgid "Attribute"
msgstr "Attribut"

#. type: tbl table
#, no-wrap
msgid "Value"
msgstr "Wert"

#. type: tbl table
#, no-wrap
msgid ""
"B<setjmp>(),"
"B<sigsetjmp>()"
msgstr ""
"B<setjmp>(),"
"B<sigsetjmp>()"

#. type: tbl table
#, no-wrap
msgid "Thread safety"
msgstr "Multithread-Fà¤higkeit"

#. type: tbl table
#, no-wrap
msgid "MT-Safe"
msgstr "MT-Safe"

#. type: tbl table
#, no-wrap
msgid ""
"B<longjmp>(),"
"B<siglongjmp>()"
msgstr ""
"B<longjmp>(),"
"B<siglongjmp>()"

#. type: SH
#, no-wrap
msgid "CONFORMING TO"
msgstr "KONFORM ZU"

#. type: Plain text
msgid "B<setjmp>(), B<longjmp>(): POSIX.1-2001, POSIX.1-2008, C89, C99."
msgstr "B<setjmp>(), B<longjmp>(): POSIX.1-2001, POSIX.1-2008, C89, C99."

#. type: Plain text
msgid "B<sigsetjmp>(), B<siglongjmp>(): POSIX.1-2001, POSIX.1-2008."
msgstr "B<sigsetjmp>(), B<siglongjmp>(): POSIX.1-2001, POSIX.1-2008."

#. type: SH
#, no-wrap
msgid "NOTES"
msgstr "ANMERKUNGEN"

#. .BR _XOPEN_SOURCE_EXTENDED ,
#. type: Plain text
msgid ""
"POSIX does not specify whether B<setjmp>() will save the signal mask (to be "
"later restored during B<longjmp>(). In System V it will not. In 4.3BSD it "
"will, and there is a function B<_setjmp> that will not. On Linux with glibc "
"versions before 2.19, B<setjmp>() follows the System V behavior by default, "
"but the BSD behavior is provided if the B<_BSD_SOURCE> feature test macro is "
"defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
"B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined. Since glibc 2.19, "
"I<E<lt>setjmp.hE<gt>> exposes only the System V version of B<setjmp>(). "
"Programs that need the BSD semantics should replace calls to B<setjmp>() "
"with calls to B<sigsetjmp>() with a nonzero I<savesigs> argument."
msgstr ""
"POSIX spezifiziert nicht, ob B<setjmp>() die Signalmaske sichern wird (um "
"sie spà¤ter wà¤hrend B<longjmp> wieder herzustellen). In System-V wird es dies "
"nicht tun. In 4.3BSD wird es dies tun und dort gibt es eine Funktion "
"B<_setjmp>, die es nicht tut. Unter Linux mit Glibc-Versionen vor 2.19 "
"folgte B<setjmp>() standardmà¤àŸig dem Verhalten von System V, aber das BSD-"
"Verhalten wird bereitgestellt, wenn das B<_BSD_SOURCE>-Feature-Test-Macro "
"definiert ist und weder B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, "
"B<_XOPEN_SOURCE>, B<_GNU_SOURCE> noch B<_SVID_SOURCE> definiert ist. Seit "
"Glibc 2.19 stellt I<E<lt>setjmp.hE<gt>> nur die System-V-Version von "
"B<setjmp>() bereit. Programme, die die BSD-Semantik benötigen, sollten "
"Aufrufe von B<setjmp>() durch Aufrufe von B<sigsetjmp>(), bei denen das "
"Argument I<savesigs> ungleich numerisch Null ist, ersetzen."

#. type: Plain text
msgid ""
"B<setjmp>() and B<longjmp>(3) can be useful for dealing with errors inside "
"deeply nested function calls or to allow a signal handler to pass control to "
"a specific point in the program, rather than returning to the point where "
"the handler interrupted the main program. In the latter case, if you want "
"to portably save and restore signal masks, use B<sigsetjmp>() and "
"B<siglongjmp>(). See also the discussion of program readability below."
msgstr ""
"B<setjmp>() und B<longjmp>(3) können zum Umgang mit Fehlern innerhalb "
"tiefverschachtelter Funktionsaufrufe nà¼tzlich sein, oder um einem Signal-"
"Handler zu ermöglichen, die Steuerung an einen bestimmten Punkt in dem "
"Programm zu à¼brgeben, statt zu dem Punkt zurà¼ckzukehren, andem der Handler "
"das Hauptprogramm unterbrochen hat. In letzterem Falle verwenden Sie "
"B<sigsetjmp>() und B<siglongjmp>(), falls die portable die Signalmaske "
"speichern und wiederherstellen möchten. Lesen Sie auch die Diskussion zur "
"Programmlesbarkeit weiter unten."

#, fuzzy
#. type: Plain text
msgid ""
"The compiler may optimize variables into registers, and B<longjmp>() may "
"restore the values of other registers in addition to the stack pointer and "
"program counter. Consequently, the values of automatic variables are "
"unspecified after a call to B<longjmp>() if they meet all the following "
"criteria:"
msgstr ""
"Der Compiler kann Variablen in Register optimieren und B<longjmp>() kann "
"zusà¤tzlich zum FIXME-Zeiger und dem Programmzà¤hler die Werte anderer Register "
"wiederherstellen. Daher ist der Wert von automatischen Variablen nach einem "
"Aufruf von B<longjmp>() undefiniert, falls alle folgenden Kriterien zutreffen:"

#. type: IP
#, no-wrap
msgid "\\(bu"
msgstr "\\(bu"

#. type: Plain text
msgid ""
"they are local to the function that made the corresponding B<setjmp>(3) "
"call;"
msgstr ""
"sie sind fà¼r die Funktion, die den entsprechenden Aufruf B<setjmp>(3) "
"durchfà¼hrte, lokal,"

#. type: Plain text
msgid ""
"their values are changed between the calls to B<setjmp>(3) and "
"B<longjmp>(); and"
msgstr ""
"ihre Werte sind zwischen Aufrufen von B<setjmp>(3) und B<longjmp>() "
"geà¤ndert, und"

#. type: Plain text
msgid "they are not declared as I<volatile>."
msgstr "sie sind nicht als I<volatile> deklariert."

#. type: Plain text
msgid "Analogous remarks apply for B<siglongjmp>()."
msgstr "Entsprechende Anmerkungen gelten fà¼r B<siglongjmp>()."

#. type: SS
#, no-wrap
msgid "Nonlocal gotos and program readability"
msgstr "Nicht lokale GOTOs und Programmlesbarkeit"

#. type: Plain text
msgid ""
"While it can be abused, the traditional C \"goto\" statement at least has "
"the benefit that lexical cues (the goto statement and the target label) "
"allow the programmer to easily perceive the flow of control. Nonlocal gotos "
"provide no such cues: multiple B<setjmp>() calls might employ the same "
"I<jmp_buf> variable so that the content of the variable may change over the "
"lifetime of the application. Consequently, the programmer may be forced to "
"perform detailed reading of the code to determine the dynamic target of a "
"particular B<longjmp>() call. (To make the programmer's life easier, each "
"B<setjmp>() call should employ a unique I<jmp_buf> variable.)"
msgstr ""
"Auch wenn er missbraucht werden kann, hat der traditionelle »goto«-Ausdruck "
"von C zumindest den Vorteil, dass lexikalische Hinweise (der Goto-Ausdruck "
"und die Zielmarkierung) dem Programmier erlauben, leicht den Ablauf zu "
"verstehen. Nichtlokale Gotos stellen keine solchen Hinweise bereit: mehrere "
"Aufrufe von B<setjmp>() können die gleiche Variable I<jmp_buf> einsetzen, so "
"dass der Inhalt der Variablen sich à¼ber die Lebensdauer des Programmes "
"verà¤ndern kann. Konsequenterweise kann der Programmerer dazu gezwungen sein, "
"den Code detailliert zu lesen, um das dynammische Ziel eines bestimmten "
"Aufrufs von B<longjmp>() zu ermitteln. (Um das Leben der Programmierer zu "
"erleichtern, sollte jeder Aufruf von B<setjmp>() eine eineindeutige Variable "
"I<jmp_buf> einsetzen.)"

#. type: Plain text
msgid ""
"Adding further difficulty, the B<setjmp>() and B<longjmp>() calls may not "
"even be in the same source code module."
msgstr ""
"Weitere Schwierigkeiten kommen hinzu, da die Aufrufe von B<setjmp>() und "
"B<longjmp>() nicht zwingend im gleichen Quellcodemodul sein mà¼ssen."

#. type: Plain text
msgid ""
"In summary, nonlocal gotos can make programs harder to understand and "
"maintain, and an alternative should be used if possible."
msgstr ""
"Zusammenfassend erschweren nicht lokale GOTOs das Verstà¤ndnis und die "
"Verwaltung von Programmen. Falls möglich, sollte eine Alternative benutzt "
"werden."

#. type: SS
#, no-wrap
msgid "Caveats"
msgstr "Vorsicht"

#. type: Plain text
msgid ""
"If the function which called B<setjmp>() returns before B<longjmp>() is "
"called, the behavior is undefined. Some kind of subtle or unsubtle chaos is "
"sure to result."
msgstr ""
"Falls die Funktion, die B<setjmp>() aufruft, zurà¼ckkehrt, bevor B<longjmp>() "
"aufgerufen wird, ist das Verhalten undefiniert. Irgendwelches subtiles oder "
"nicht so subtiles Chaos entstehdt bestimmt dadurch."

#
#
#. The following statement appeared in versions up to POSIX.1-2008 TC1,
#. but is set to be removed in POSIX.1-2008 TC2:
#. According to POSIX.1, if a
#. .BR longjmp ()
#. call is performed from a nested signal handler
#. (i.e., from a handler that was invoked in response to a signal that was
#. generated while another signal was already in the process of being
#. handled), the behavior is undefined.
#. type: Plain text
msgid ""
"If, in a multithreaded program, a B<longjmp>() call employs an I<env> "
"buffer that was initialized by a call to B<setjmp>() in a different thread, "
"the behavior is undefined."
msgstr ""

#. http://austingroupbugs.net/view.php?id=516#c1195
#. type: Plain text
msgid ""
"POSIX.1-2008 Technical Corrigendum 2 adds B<longjmp>() and B<siglongjmp>() "
"to the list of async-signal-safe functions. However, the standard "
"recommends avoiding the use of these functions from signal handlers and goes "
"on to point out that if these functions are called from a signal handler "
"that interrupted a call to a non-async-signal-safe function (or some "
"equivalent, such as the steps equivalent to B<exit>(3) that occur upon a "
"return from the initial call to I<main>()), the behavior is undefined if the "
"program subsequently makes a call to a non-async-signal-safe function. The "
"only way of avoiding undefined behavior is to ensure one of the following:"
msgstr ""

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

#. type: Plain text
msgid ""
"After long jumping from the signal handler, the program does not call any "
"non-async-signal-safe functions and does not return from the initial call to "
"I<main>()."
msgstr ""

#. type: Plain text
msgid ""
"Any signal whose handler performs a long jump must be blocked during "
"I<every> call to a non-async-signal-safe function and no non-async-signal-"
"safe functions are called after returning from the initial call to I<main>()."
msgstr ""

#. type: SH
#, no-wrap
msgid "SEE ALSO"
msgstr "SIEHE AUCH"

#. type: Plain text
msgid "B<signal>(7)"
msgstr "B<signal>(7)"

#. type: SH
#, no-wrap
msgid "COLOPHON"
msgstr "KOLOPHON"

#. type: Plain text
msgid ""
"This page is part of release 4.07 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.07 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/."




 

Lesen sie die antworten

#1 Chris Leick
11/10/2016 - 23:00 | Warnen spam
Hallo Helge,

#. type: Plain text
msgid "setjmp, sigsetjmp, longjmp, siglongjmp - performing a nonlocal goto"
msgstr ""
"setjmp, sigsetjmp, longjmp, siglongjmp - Nichtlokale Verzweigung
durchführen"



s/Nichtlokale Verzweigung/nichtlokaler Sprungbefehl/
(auch nachfolgend)


#. type: Plain text
msgid ""
"The B<longjmp>() function uses the information saved in I<env> to transfer
" "control back to the point where B<setjmp>() was called and to restore "
"(\"rewind\") the stack to its state at the time of the B<setjmp>() call.
" "In addition, and depending on the implementation (see NOTES), the values
of " "some other registers and the process signal mask may be restored to
their " "state at the time of the B<setjmp>() call."
msgstr ""
"Die Funktion B<longjmp>() verwendet die in I<env> gespeicherten "
"Informationen, um die Steuerung zu dem Punkt zurückzuübergeben, an dem "
"B<setjmp>() aufgerufen worden war und den Stack auf seinem Zustand zum "
"Zeitpunkt des Aufrufs von B<setjmp>() wiederherzustellen
(»zurückzuspulen«). " "Zusàtzlich und abhàngig von der Implementierung
(siehe ANMERKUNGEN) können " "die Werte einiger anderer Register und der
Prozesssignalmaske auf den Wert " "zum Zeitpunkt des Aufrufs von
B<setjmp>() wiederhergestellt werden."



s/war und den Stack/war, um den Stack/


#. type: Plain text
msgid ""
"B<setjmp>() and B<sigsetjmp>() return 0 when called directly; on the
\"fake" "\" return that occurs after B<longjmp>() or B<siglongjmp>(), the
nonzero " "value specified in I<val> is returned."
msgstr ""
"B<setjmp>() und B<sigsetjmp>() geben 0 zurück, wenn sie direkt aufgerufen "
"wurden; bei dem \"nachgeahmten\" Zurückkehren, das nach B<longjmp>() und "
"B<siglongjmp>() auftritt, wird der in I<val> angegebene Nichtnull-Wert "
"zurückgegeben."



s/\"nachgeahmten\"/»nachgeahmten«/


#. type: Plain text
msgid ""
"B<setjmp>() and B<longjmp>(3) can be useful for dealing with errors
inside " "deeply nested function calls or to allow a signal handler to pass
control to " "a specific point in the program, rather than returning to the
point where " "the handler interrupted the main program. In the latter
case, if you want " "to portably save and restore signal masks, use
B<sigsetjmp>() and " "B<siglongjmp>(). See also the discussion of program
readability below." msgstr ""
"B<setjmp>() und B<longjmp>(3) können zum Umgang mit Fehlern innerhalb "
"tiefverschachtelter Funktionsaufrufe nützlich sein, oder um einem Signal-"
"Handler zu ermöglichen, die Steuerung an einen bestimmten Punkt in dem "
"Programm zu übrgeben, statt zu dem Punkt zurückzukehren, andem der Handler
"
"das Hauptprogramm unterbrochen hat. In letzterem Falle verwenden Sie "
"B<sigsetjmp>() und B<siglongjmp>(), falls die portable die Signalmaske "
"speichern und wiederherstellen möchten. Lesen Sie auch die Diskussion zur "
"Programmlesbarkeit weiter unten."



s/tiefverschachtelter/tief verschachtelter/
s/sein, oder/sein oder/
s/übrgeben/übergeben/
s/andem/indem/
s/die portable die Signalmaske/Sie die Signalmaske portabel/


#, fuzzy
#. type: Plain text
msgid ""
"The compiler may optimize variables into registers, and B<longjmp>() may "
"restore the values of other registers in addition to the stack pointer and
"
"program counter. Consequently, the values of automatic variables are "
"unspecified after a call to B<longjmp>() if they meet all the following "
"criteria:"
msgstr ""
"Der Compiler kann Variablen in Register optimieren und B<longjmp>() kann "
"zusàtzlich zum FIXME-Zeiger und dem Programmzàhler die Werte anderer
Register " "wiederherstellen. Daher ist der Wert von automatischen
Variablen nach einem " "Aufruf von B<longjmp>() undefiniert, falls alle
folgenden Kriterien zutreffen:"



kann die Werte anderer Register zusàtzlich zum Stack-und Programmzeiger
wiederherstellen


#. type: Plain text
msgid ""
"While it can be abused, the traditional C \"goto\" statement at least has "
"the benefit that lexical cues (the goto statement and the target label) "
"allow the programmer to easily perceive the flow of control. Nonlocal
gotos " "provide no such cues: multiple B<setjmp>() calls might employ the
same " "I<jmp_buf> variable so that the content of the variable may change
over the " "lifetime of the application. Consequently, the programmer may
be forced to " "perform detailed reading of the code to determine the
dynamic target of a " "particular B<longjmp>() call. (To make the
programmer's life easier, each " "B<setjmp>() call should employ a unique
I<jmp_buf> variable.)"
msgstr ""
"Auch wenn er missbraucht werden kann, hat der traditionelle »goto«-Ausdruck
" "von C zumindest den Vorteil, dass lexikalische Hinweise (der
Goto-Ausdruck " "und die Zielmarkierung) dem Programmier erlauben, leicht
den Ablauf zu " "verstehen. Nichtlokale Gotos stellen keine solchen
Hinweise bereit: mehrere " "Aufrufe von B<setjmp>() können die gleiche
Variable I<jmp_buf> einsetzen, so " "dass der Inhalt der Variablen sich
über die Lebensdauer des Programmes " "veràndern kann. Konsequenterweise
kann der Programmerer dazu gezwungen sein, " "den Code detailliert zu
lesen, um das dynammische Ziel eines bestimmten " "Aufrufs von B<longjmp>()
zu ermitteln. (Um das Leben der Programmierer zu " "erleichtern, sollte
jeder Aufruf von B<setjmp>() eine eineindeutige Variable " "I<jmp_buf>
einsetzen.)"



s/dem Programmier erlauben/dem Programmierer erlauben/
s/bereit: mehrere/bereit: Mehrere/
s/des Programmes/des Programms/
s/der Programmerer dazu/der Programmierer dazu/
s/das dynammische/das dynamische/


#. type: Plain text
msgid ""
"If the function which called B<setjmp>() returns before B<longjmp>() is "
"called, the behavior is undefined. Some kind of subtle or unsubtle chaos
is " "sure to result."
msgstr ""
"Falls die Funktion, die B<setjmp>() aufruft, zurückkehrt, bevor
B<longjmp>() " "aufgerufen wird, ist das Verhalten undefiniert.
Irgendwelches subtiles oder " "nicht so subtiles Chaos entstehdt bestimmt
dadurch."



s/entstehdt/entsteht/


#. type: Plain text
msgid ""
"If, in a multithreaded program, a B<longjmp>() call employs an I<env> "
"buffer that was initialized by a call to B<setjmp>() in a different
thread, " "the behavior is undefined."
msgstr ""



Falls ein B<longjmp>()-Aufruf in einem Programm mit mehreren Threads einen
I<env>-Puffer einsetzt, der durch einen Aufruf von B<setjmp>() in einem anderen
Thread initialisiert wurde, ist sein Verhalten nicht definiert.


#. http://austingroupbugs.net/view.php?idQ6#c1195
#. type: Plain text
msgid ""
"POSIX.1-2008 Technical Corrigendum 2 adds B<longjmp>() and B<siglongjmp>()
" "to the list of async-signal-safe functions. However, the standard "
"recommends avoiding the use of these functions from signal handlers and
goes " "on to point out that if these functions are called from a signal
handler " "that interrupted a call to a non-async-signal-safe function (or
some " "equivalent, such as the steps equivalent to B<exit>(3) that occur
upon a " "return from the initial call to I<main>()), the behavior is
undefined if the " "program subsequently makes a call to a
non-async-signal-safe function. The " "only way of avoiding undefined
behavior is to ensure one of the following:" msgstr ""



POSIX.1-2008 Technical Corrigendum 2 fügt B<longjmp>() und B<siglongjmp>() zur
Liste der asynchronsignalsicheren Funktionen hinzu. Der Standard empfiehlt
jedoch den Gebrauch dieser Funktionen von Signal-Handlern
(Signalbehandlungsroutinen?) zu vermeiden. Es fàhrt damit fort, zu betonen,
dass, falls diese Funktionen von einem Signal-Handler aufgerufen werden, dies
einen Aufruf zu einer nicht asynchronsignalsicheren Funktion (oder etwas
gleichbedeutendem, wie den Schritten die B<exit>(3) entsprechen, die über eine
Rückkehr vom initialen Aufruf zu I<main>() auftreten) gleichkommt. Das
Verhalten ist nicht definiert, falls das Programm nachfolgend einen Aufruf zu
einer nicht asynchronsignalsicheren Funktion tàtigt. Der einzige Weg, nicht
definiertes Verhalten zu vermeiden, ist, eines des Nachfolgenden
sicherzustellen.


#. type: Plain text
msgid ""
"After long jumping from the signal handler, the program does not call any "
"non-async-signal-safe functions and does not return from the initial call
to " "I<main>()."
msgstr ""



Nach langen Sprüngen vom Signal-Handler, ruft das Programm nciht irgendwelche
nicht asynchronsignalsicheren Funktionen auf und kehrt nicht von initalen
Aufruf von I<main>() zurück


#. type: Plain text
msgid ""
"Any signal whose handler performs a long jump must be blocked during "
"I<every> call to a non-async-signal-safe function and no non-async-signal-"
"safe functions are called after returning from the initial call to
I<main>()." msgstr ""



Jedes Signal, das einen langen Sprung durchführt, muss wàhrend I<jedem> Aufruf
einer nicht asynchronsignalsicheren Funktion blockiert werden und keine nicht
asynchronsignalsichere Funktion wird nach der Rückkehr vom initalen Aufruf von
I<main>() aufgerufen.


Gruß,
Chris

Ähnliche fragen