Bash-Linux.com : Le SHELL pour les nuls

  Actuellement 50 lignes de commande et 1472 man disponibles
login as: root
root@213.186.33.18's password:
Last login: Tue May 29 18:37:37 2012 from 38.107.179.229
[root@bash-linux ~] # echo "Bienvenue sur Bash-Linux.com"_
 Manuel des commandes UNIX (man) Version anglaise

Indiquez la fonction :

Man Makecontext en anglais

MAKECONTEXT(3) Linux Programmer's Manual MAKECONTEXT(3)
 
NAME


makecontext, swapcontext - manipulate user context
 
SYNOPSIS


#include void makecontext(ucontext_t *ucp, void (*func)(), int argc, ...); int swapcontext(ucontext_t *oucp, ucontext_t *ucp);
 
DESCRIPTION


In a System V-like environment, one has the type ucontext_t defined in and the four functions getcontext(2), setcontext(2), make- context() and swapcontext() that allow user-level context switching between multiple threads of control within a process. For the type and the first two functions, see getcontext(2). The makecontext() function modifies the context pointed to by ucp (which was obtained from a call to getcontext(2)). Before invoking makecontext(), the caller must allocate a new stack for this context and assign its address to ucp->uc_stack, and define a successor context and assign its address to ucp->uc_link. When this context is later activated (using setcontext(2) or swapcon- text()) the function func is called, and passed the series of integer (int) arguments that follow argc; the caller must specify the number of these arguments in argc. When this function returns, the successor context is activated. If the successor context pointer is NULL, the thread exits. The swapcontext() function saves the current context in the structure pointed to by oucp, and then activates the context pointed to by ucp.
 
RETURN VALUE


When successful, swapcontext() does not return. (But we may return later, in case oucp is activated, in which case it looks like swapcon- text() returns 0.) On error, swapcontext() returns -1 and sets errno appropriately.
 
ERRORS


ENOMEM Insufficient stack space left.
 
VERSIONS


makecontext() and swapcontext() are provided in glibc since version 2.1.
 
CONFORMING TO


SUSv2, POSIX.1-2001.
 
NOTES


The interpretation of ucp->uc_stack is just as in sigaltstack(2), namely, this struct contains the start and length of a memory area to be used as the stack, regardless of the direction of growth of the stack. Thus, it is not necessary for the user program to worry about this direction.
 
EXAMPLE


The example program below demonstrates the use of getcontext(2), make- context(), and swapcontext(). Running the program produces the follow- ing output: $ ./a.out main: swapcontext(&uctx_main, &uctx_func2) func2: started func2: swapcontext(&uctx_func2, &uctx_func1) func1: started func1: swapcontext(&uctx_func1, &uctx_func2) func2: returning func1: returning main: exiting #include #include #include static ucontext_t uctx_main, uctx_func1, uctx_func2; #define handle_error(msg) \ do { perror(msg); exit(EXIT_FAILURE); } while (0) static void func1(void) { printf("func1: started\n"); printf("func1: swapcontext(&uctx_func1, &uctx_func2)\n"); if (swapcontext(&uctx_func1, &uctx_func2) == -1) handle_error("swapcontext"); printf("func1: returning\n"); } static void func2(void) { printf("func2: started\n"); printf("func2: swapcontext(&uctx_func2, &uctx_func1)\n"); if (swapcontext(&uctx_func2, &uctx_func1) == -1) handle_error("swapcontext"); printf("func2: returning\n"); } int main(int argc, char *argv[]) { char func1_stack[16384]; char func2_stack[16384]; if (getcontext(&uctx_func1) == -1) handle_error("getcontext"); uctx_func1.uc_stack.ss_sp = func1_stack; uctx_func1.uc_stack.ss_size = sizeof(func1_stack); uctx_func1.uc_link = &uctx_main; makecontext(&uctx_func1, func1, 0); if (getcontext(&uctx_func2) == -1) handle_error("getcontext"); uctx_func2.uc_stack.ss_sp = func2_stack; uctx_func2.uc_stack.ss_size = sizeof(func2_stack); /* Successor context is f1(), unless argc > 1 */ uctx_func2.uc_link = (argc > 1) ? NULL : &uctx_func1; makecontext(&uctx_func2, func2, 0); printf("main: swapcontext(&uctx_main, &uctx_func2)\n"); if (swapcontext(&uctx_main, &uctx_func2) == -1) handle_error("swapcontext"); printf("main: exiting\n"); exit(EXIT_SUCCESS); }
 
SEE ALSO


getcontext(2), sigaction(2), sigaltstack(2), sigprocmask(2), sigsetjmp(3)
 
COLOPHON


This page is part of release 3.05 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. GNU 2008-06-14 MAKECONTEXT(3)


 Dernières recherches
Man  en anglais Man makecontext en anglaisMan  en français Man makecontext en français
Man  en anglais Man mailx en anglaisMan  en français Man mailx en français
Man  en anglais Man mailq en anglaisMan  en français Man mailq en français
Man  en anglais Man mailcap en anglaisMan  en français Man mailcap en français
Man  en anglais Man mailaddr en anglaisMan  en français Man mailaddr en français
Man  en anglais Man nanosleep en anglaisMan  en français Man nanosleep en français
Man  en anglais Man mail en anglaisMan  en français Man mail en français
Man  en anglais Man magic en anglaisMan  en français Man magic en français
Man  en anglais Man madvise en anglaisMan  en français Man madvise en français
Man  en anglais Man lynx en anglaisMan  en français Man lynx en français
Man  en anglais Man lstat en anglaisMan  en français Man lstat en français
Man  en anglais Man lsearch en anglaisMan  en français Man lsearch en français
Man  en anglais Man lsattr en anglaisMan  en français Man lsattr en français
Man  en anglais Man lround en anglaisMan  en français Man lround en français
Man  en anglais Man lrint en anglaisMan  en français Man lrint en français

 Recherche

Dans ce moteur de recherche, vous pouvez taper directement votre besoin, en une phrase normale, humaine.
Exemple : vous cherchez comment remplacer un mot par un autre dans tous les fichiers d'un certain dossier. Vous pouvez écrire "Comment remplacer un mot par un autre dans tous les fichiers d'un dossier". Le moteur vous ramenera les résultats en fonction de leur pertinence.
Vous pouvez bien sûr ne chercher qu'un seul mot-clé, par exemple "find".
 Toutes les lignes de code
Par popularité
Par fonction
Recherche avancée
 Les logiciels SHELL/SSH
Putty
Astuces Bash
Faire du SHELL avec PHP!
 La doc officielle
Les man Linux en français
Les man Linux en anglais
 Proposer vos bash
Partagez vos lignes!
 Les requêtes
Déposer une requête
Voir/répondre à une requête
 Quelques sites interessants
Bons sites pour apprendre
 Rechercher