Programmation des sockets

Résolu
dx3d Messages postés 72 Statut Membre -  
ElementW Messages postés 5690 Statut Contributeur -
Bonjour, donc j'ai une petite question de cours :

Voici ci dessous la partie de code qui m'intéresse :
static void signal_handler(int signal) {
(void)signal;

/* Just inform we're asked to quit */
recv_sign = 1;
}

signal(SIGTERM, signal_handler);
signal(SIGINT, signal_handler);
signal(SIGQUIT, signal_handler);


Donc j'ai déjà vu se que font SIGTERM/SIGINT/SIGQUIT mais c'est plus l'utilité des lignes signal(SIGX,signal_handler); qui m'intéresse, que font elles exactement ? J'ai vu que le but de signal() est de retourner un pointeur au handler mais à quel but ?

Aussi pour ma seconde question :
Que ce passe-t'il dans le cas où on fait une boucle :
for(;;){
if(condition){
break;
}
}

est ce qu'elle continuera de tourner jusqu'à ce qu'on est la condition nécessaire et qu'on la break ?

1 réponse

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    'lut,
    signal
    renvoie un pointeur au handler précédent, et réattribues un nouveau handler que tu spécifies en 2nd paramètre.

    Pour ta boucle, ça équivaut à:
    for (; !condition;) {
        // Code
    }
    ou a
    while (!condition) {
        // Code
    }
    Donc oui, elle s'arrêtera quand la condition sera
    true
    .
    from human import idiocy
    del idiocy
    0