{"id":5685,"date":"2025-12-08T15:38:37","date_gmt":"2025-12-08T14:38:37","guid":{"rendered":"https:\/\/workboot.fr\/ciela\/?page_id=5685"},"modified":"2025-12-08T15:55:57","modified_gmt":"2025-12-08T14:55:57","slug":"signal-et-sigint","status":"publish","type":"page","link":"https:\/\/workboot.fr\/ciela\/signal-et-sigint\/","title":{"rendered":"signal et  SIGINT"},"content":{"rendered":"\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;stdio.h>\n#include &lt;stdlib.h>\n#include &lt;signal.h>\n#include &lt;unistd.h>\n\n\/* Variable volatile pour la communication avec le gestionnaire de signal *\/\nvolatile sig_atomic_t terminer = 0;\n\n\/* Gestionnaire de signal pour SIGINT *\/\nvoid gestionnaire_sigint(int signum) {\n    (void)signum;  \/* \u00c9vite l'avertissement unused parameter *\/\n    terminer = 1;\n}\n\nint main(void) {\n    int compteur = 0;\n    \n    \/* Installation du gestionnaire pour SIGINT *\/\n    if (signal(SIGINT, gestionnaire_sigint) == SIG_ERR) {\n        perror(\"Erreur lors de l'installation du gestionnaire\");\n        return EXIT_FAILURE;\n    }\n    \n    printf(\"=== Programme avec gestion de SIGINT ===\\n\");\n    printf(\"Appuyez sur Ctrl+C pour terminer proprement la boucle\\n\");\n    printf(\"Le programme va compter jusqu'\u00e0 ce que vous envoyiez SIGINT\\n\\n\");\n    \n    \/* Boucle principale qui s'ex\u00e9cute tant que terminer == 0 *\/\n    while (!terminer) {\n        printf(\"Compteur: %d\\n\", compteur++);\n        sleep(1);  \/* Pause d'une seconde *\/\n        \n        \/* Simulation d'un travail long *\/\n        if (compteur > 30 &amp;&amp; !terminer) {\n            printf(\"\\nTravail long termin\u00e9. Sortie normale.\\n\");\n            break;\n        }\n    }\n    \n    if (terminer) {\n        printf(\"\\n\\nSignal SIGINT re\u00e7u !\\n\");\n        printf(\"Nettoyage en cours...\\n\");\n        sleep(1);  \/* Simulation d'un nettoyage *\/\n        printf(\"Programme termin\u00e9 proprement.\\n\");\n    } else {\n        printf(\"Programme termin\u00e9 normalement (sans SIGINT).\\n\");\n    }\n    \n    return EXIT_SUCCESS;\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dans gdb , on peut neutraliser l&rsquo;effet de ctrl+c avec cette commande<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>handle SIGINT nostop noprint pass<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Dans gdb , on peut neutraliser l&rsquo;effet de ctrl+c avec cette commande<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-5685","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/workboot.fr\/ciela\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"Dans gdb , on peut neutraliser l&rsquo;effet de ctrl+c avec cette commande","_links":{"self":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/5685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/comments?post=5685"}],"version-history":[{"count":2,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/5685\/revisions"}],"predecessor-version":[{"id":5689,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/5685\/revisions\/5689"}],"wp:attachment":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/media?parent=5685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}