Hallo Chris, On Tue, Oct 11, 2016 at 10:46:23PM +0200, Chris Leick wrote: > > #. 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) mit s/nichtlokaler/nichtlokalen/ übernommen. Aber das kommt nicht nochmal vor, daher nicht »nachfolgend« geändert. > > #. 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/ Im Original steht »and«, daher sehe ich das als zwei nicht zwingend (»um zu«) verbundene Punkte. Nicht geändert. > > #. 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/ Geht beides? > > #. 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/des Programmes/des Programms/ Geht beides. > > #. 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 "" > > 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. Ich habe »Technical Corrigendum« noch übersetzt. Das »(Signalbehandlungsroutinen?)« habe ich entfernt. Ich habe »von von Signal-Handlern« in »aus Signal-Handlern« geändert. … und ein paar weitere kleinere Änderungen "POSIX.1-2008 Technische Berichtigung 2 fügt B<longjmp>() und B<siglongjmp>() " "zur Liste der asynchronsignalsicheren Funktionen hinzu. Der Standard " "empfiehlt jedoch den Gebrauch dieser Funktionen aus Signal-Handlern zu " "vermeiden. Sie fährt damit fort, zu betonen, dass, falls diese Funktionen von " "einem Signal-Handler aufgerufen werden, der einen Aufruf einer nicht " "asynchronsignalsicheren Funktion unterbrochen hatte (oder etwas " "gleichbedeutendem, wie den Schritten, die B<exit>(3) entsprechen, die über " "eine Rückkehr vom initialen Aufruf zu I<main>() auftreten). Das Verhalten " "ist nicht definiert, falls das Programm nachfolgend einen Aufruf einer nicht " "asynchronsignalsicheren Funktion durchführt. 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 Ähnlich übernommen: "Nach langen Sprüngen vom Signal-Handler ruft das Programm keine " "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. Ähnlich übernommen: "Jedes Signal, dessen Handler einen langen Sprung durchführt, muss während " "I<jedes> Aufrufs einer nicht asynchronsignalsicheren Funktion blockiert " "werden und keine nicht asynchronsignalsicheren Funktionen werden nach der " "Rückkehr vom initalen Aufruf von I<main>() aufgerufen." Vielen Dank, gerade und auch für die neuen Zeichenketten. Wie üblich habe ich Dich ins Copyright aufgenommen. Viele 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/
Attachment:
signature.asc
Description: Digital signature