Rechercher une page de manuel
getcontext
Langue: ru
Version: 2001-11-15 (openSuse - 09/10/07)
Section: 2 (Appels système)
Sommaire
éíñ
getcontext, setcontext - ÐÏÌÕÞÉÔØ ÉÌÉ ÕÓÔÁÎÏ×ÉÔØ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÊ ËÏÎÔÅËÓÔïâúïò
#include <ucontext.h>int getcontext(ucontext_t *ucp);
int setcontext(const ucontext_t *ucp);
ïðéóáîéå
÷ ÏËÒÕÖÅÎÉÅ ÐÏÄÏÂÎÏÍ SysV, ÓÕÝÅÓÔ×ÕÅÔ Ä×Á ÔÉÐÁ ÄÁÎÎÙÈ mcontext_t É ucontext_t, ËÏÔÏÒÙÅ ÏÐÒÅÄÅÌÅÎÙ × ÆÁÊÌÅ <ucontext.h> É ÞÅÔÙÒÅ ÆÕÎËÃÉÉ getcontext(), setcontext(), makecontext() É swapcontext(), ËÏÔÏÒÙÅ ÐÏÚ×ÏÌÑÀÔ ËÏÎÔÅËÓÔÕ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÕÒÏ×ÎÑ ÐÅÒÅËÌÀÞÁÔØÓÑ ÍÅÖÄÕ ÎÅÓËÏÌØËÉÍÉ ÎÉÔÑÍÉ (ÔÒÅÄÁÍÉ) ×ÎÕÔÒÉ ÏÄÎÏÇÏ ÐÒÏÃÅÓÓÁ.ôÉÐ mcontext_t Ñ×ÌÑÅÔÓÑ ÍÁÛÉÎÎÏ-ÚÁ×ÉÓÉÍÙÍ É ÐÒÉÍÉÔÉ×ÎÙÍ ÔÉÐÏÍ ÄÁÎÎÙÈ. ôÉÐ ucontext_t Ñ×ÌÑÅÔÓÑ ÓÔÒÕËÔÕÒÏÊ, ËÏÔÏÒÁÑ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÉÍÅÅÔ ÓÌÅÄÕÀÝÉÅ ÐÏÌÑ:
-
typedef struct ucontext { struct ucontext *uc_link; sigset_t uc_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; ... } ucontext_t;
æÕÎËÃÉÑ getcontext() ÉÎÉÃÉÁÌÉÚÉÒÕÅÔ ×ÙÛÅÏÐÉÓÁÎÎÕÀ ÓÔÒÕËÔÕÒÕ, ÕËÁÚÙ×ÁÑ ÞÅÒÅÚ ucp ÎÁ ÔÅËÕÝÉÊ ÁËÔÉ×ÎÙÊ ËÏÎÔÅËÓÔ.
æÕÎËÃÉÑ setcontext() ×ÏÓÓÔÁÎÁ×ÌÉ×ÁÅÔ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÊ ËÏÎÔÅËÓÔ, ÎÁ ËÏÔÏÒÙÊ ÕËÁÚÙ×ÁÅÔ ucp. õÓÐÅÛÎÙÊ ×ÙÚÏ× ÎÅ ×ÏÚ×ÒÁÝÁÅÔ ÎÉÞÅÇÏ. ëÏÎÔÅËÓÔ ÄÏÌÖÅÎ ÂÙÔØ ÐÏÌÕÞÅÎ Ó ÐÏÍÏÝØÀ ×ÙÚÏ×Á getcontext() ÉÌÉ makecontext(), ÉÌÉ ÐÅÒÅÄÁÎ ËÁË ÔÒÅÔÉÊ ÁÒÇÕÍÅÎÔ ÏÂÒÁÂÏÔÞÉËÁ ÓÉÇÎÁÌÁ.
åÓÌÉ ËÏÎÔÅËÓÔ ÂÙÌ ÐÏÌÕÞÅÎ ÞÅÒÅÚ ×ÙÚÏ× getcontext(), ×ÙÐÏÌÎÅÎÉÅ ÐÒÏÇÒÁÍÍÙ ÐÒÏÄÏÌÖÁÅÔÓÑ ËÁË ÅÓÌÉ ÂÙ ÜÔÏÔ ×ÙÚÏ× ÚÁ×ÅÒÛÉÌÓÑ ÐÒÏÓÔÙÍ ×ÏÚ×ÒÁÔÏÍ.
åÓÌÉ ËÏÎÔÅËÓÔ ÂÙÌ ÐÏÌÕÞÅÎ ÞÅÒÅÚ ×ÙÚÏ× makecontext(), ×ÙÐÏÌÎÅÎÉÅ ÐÒÏÇÒÁÍÍÙ ÐÒÏÄÏÌÖÁÅÔÓÑ Ó ÐÏÍÏÝØÀ ×ÙÚÏ×Á ÆÕÎËÃÉÉ func, ËÏÔÏÒÁÑ ÚÁÄÁ£ÔÓÑ ËÁË ×ÔÏÒÏÊ ÁÒÇÕÍÅÎÔ ×ÙÚÏ×Á makecontext(). ëÏÇÄÁ ÐÒÏÉÓÈÏÄÉÔ ×ÏÚ×ÒÁÔ ÉÚ ÆÕÎËÃÉÉ func, ×ÙÐÏÌÎÅÎÉÅ ÐÒÏÄÏÌÖÁÅÔÓÑ Ó ÐÏÌÑ uc_link ÓÔÒÕËÔÕÒÙ ucp, ËÏÔÏÒÁÑ ÚÁÄÁ£ÔÓÑ ËÁË ÐÅÒ×ÙÊ ÁÒÇÕÍÅÎÔ ×ÙÚÏ×Á makecontext(). åÓÌÉ ÜÔÏ ÐÏÌÅ ÒÁ×ÎÏ NULL, ÏÓÕÝÅÓÔ×ÌÑÅÔÓÑ ×ÙÈÏÄ ÉÚ ÎÉÔÉ.
åÓÌÉ ËÏÎÔÅËÓÔ ÂÙÌ ÐÏÌÕÞÅÎ Ó ÐÏÍÏÝØÀ ×ÙÚÏ×Á ÏÂÒÁÂÏÔÞÉËÁ ÓÉÇÎÁÌÁ, ÔÏ ÓÔÁÒÙÊ ÔÅËÓÔ ÓÔÁÎÄÁÒÔÁ ÇÏ×ÏÒÉÔ, ÞÔÏ "×ÙÐÏÌÎÅÎÉÅ ÐÒÏÇÒÁÍÍÙ ÐÒÏÄÏÌÖÁÅÔÓÑ Ó ÉÎÓÔÒÕËÃÉÉ ÐÒÏÇÒÁÍÍÙ, ËÏÔÏÒÁÑ ÓÌÅÄÕÅÔ ÚÁ ÉÎÓÔÒÕËÃÉÅÊ, ÐÒÅÒ×ÁÎÎÏÊ ÓÉÇÎÁÌÏÍ". ïÄÎÁËÏ, ÜÔÏÔ ÔÅËÓÔ ÂÙÌ ÕÄÁÌÅÎ × SUSv2 × ×ÅÒÄÉËÔÏÍ "ÒÅÚÕÌØÔÁÔ ÎÅÏÐÒÅÄÅÌ£Î".
÷ïú÷òáýáåíïå úîáþåîéå
÷ ÓÌÕÞÁÅ ÕÓÐÅÈÁ, getcontext() ×ÏÚ×ÒÁÝÁÅÔ 0, Á setcontext() ÎÅ ×ÏÚ×ÒÁÝÁÅÔ ÎÉÞÅÇÏ. ÷ ÓÌÕÞÁÅ ÏÛÉÂËÉ, ×ÏÚ×ÒÁÝÁÅÔÓÑ -1 É ÚÎÁÞÅÎÉÅ errno ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ ÏÂÒÁÚÏÍ.ïûéâëé
îÅ ÏÐÒÅÄÅÌÅÎÙ.úáíåþáîéñ
÷ ÒÁÎÎÉÈ ×ÅÒÓÉÑÈ ÜÔÏÇÏ ÍÅÈÁÎÉÚÍÁ ÉÓÐÏÌØÚÏ×ÁÌÓÑ ÍÅÈÁÎÉÚÍ setjmp()/longjmp(). ÷ Î£Í ÎÅ ÂÙÌÏ ÏÐÒÅÄÅÌÅÎÏ ÕÐÒÁ×ÌÅÎÉÅ ËÏÎÔÅËÓÔÏÍ ÓÉÇÎÁÌÁ, ÞÔÏ ÂÙÌÏ ÒÅÛÅÎÏ × ÓÌÅÄÕÝÅÍ ×ÁÒÉÁÎÔÅ ÐÁÒÏÊ sigsetjmp()/siglongjmp(). ôÅËÕÝÉÊ ÍÅÈÁÎÉÚÍ ÄÁ£Ô ÍÎÏÇÏ ÂÏÌØÛÅ ËÏÎÔÒÏÌÑ. ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ, ÎÅ ÓÕÝÅÓÔ×ÕÅÔ Ì£ÇËÏÇÏ ÓÐÏÓÏÂÁ ÏÐÒÅÄÅÌÉÔØ ËÁËÏÅ ÉÚ Ä×ÕÈ ÚÎÁÞÅÎÉÊ ×ÏÚ×ÒÁÝÁÅÔ ÐÒÉ ÐÅÒ×ÏÍ ÚÁÐÕÓËÅ ×ÙÚÏ× getcontext() ÉÌÉ ×ÙÚÏ× setcontext(). ðÏÌØÚÏ×ÁÔÅÌØ ÉÍÅÅÔ ÄÏÌÖÅÎ ÐÒÉÄÕÍÁÔØ ÓÏÂÓÔ×ÅÎÎÙÊ ÓÐÏÓÏÂ É ÒÅÇÉÓÔÒÏ×ÕÀ ÐÅÒÅÍÅÎÎÕÀ, ËÏÔÏÒÁÑ ÄÏÌÖÎÁ ÓÏÈÒÁÎÑÅÔÓÑ ËÏÇÄÁ ×ÏÓÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ ÚÎÁÞÅÎÉÑ ÒÅÇÉÓÔÒÏ×.åÓÌÉ ×ÏÚÎÉËÎÅÔ ÓÉÇÎÁÌ, ÔÅËÕÝÉÊ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÊ ËÏÎÔÅËÓÔ ÓÏÈÒÁÎÑÅÔÓÑ É ÄÌÑ ÏÂÒÁÂÏÔÞÉËÁ ÓÉÇÎÁÌÁ ÑÄÒÏÍ ÓÏÚÄÁ£ÔÓÑ ÎÏ×ÙÊ ËÏÎÔÅËÓÔ. îÅ ×ÙÈÏÄÉÔÅ ÉÚ ÜÔÏÇÏ ÏÂÒÁÂÏÔÞÉËÁ, ÉÓÐÏÌØÚÕÑ longjmp() - ÎÅÉÚ×ÅÓÔÎÏ, ÞÔÏ ÍÏÖÅÔ ÓÌÕÞÉÔØÓÑ Ó ËÏÎÔÅËÓÔÁÍÉ. ÷ÍÅÓÔÏ ÜÔÏÇÏ ÉÓÐÏÌØÚÕÊÔÅ ×ÙÚÏ×Ù siglongjmp() ÉÌÉ setcontext().
óïïô÷åôóô÷éå óôáîäáòôáí
SUSv2óíïôòé ôáëöå
sigaction(2), sigaltstack(2), sigprocmask(2), longjmp(3), sigsetjmp(3), makecontext(3)ðåòå÷ïä
ðÅÒÅ×£Ì Ó ÁÎÇÌÉÊÓËÏÇÏ ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× <corochoone@perm.ru> 2005Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre