If return 0

Résolu
Bonjour,

J'ai fait un programme, et je voulais savoir comment faire

if (mon programme se ferme)
{
system("shutdown/s");
}

Merci de votre aide

6 réponses

  1. Tu peux empiler des routines à executer en fin de programme (lors d'un appel à exit(), ou un return, par exemple), grâce à la fonction atexit():

    #include <stdlib.h>
    #include <stdio.h>
    
    void end_prg_cb (void)
    {
        fprintf (stdout, "Fin du programme");
    }
    
    int main (void)
    {
        atexit (end_prg_cb);
    
        fprintf (stdout, "Le programme va bientôt fermer");
    
        return 0;
    }
    1. si le programme se ferme, on arrete l'ordi
      1. Contributeur
        Réponds correctement à la question si tu veux des réponses.
        Si le programme se ferme correctement ou brutalement ?
    2. mais comment faire un

      if le programme se ferme
      alors arreter l'ordi

      ?
      1. Contributeur
        Déjà, si tu répondais à ma question, t'aurais eu ta réponse depuis une semaine...
        i le programme se ferme correctement ou brutalement ?
      2. Contributeur
        la réponse est donnée : atexit().
        Tu ne peux pas faire un if(le programme se ferme) Dans un programme séquentiel ça n'a pas de sens.
        Le mieux est en effet de répondre aux questions et donner plus d'informations sur le contexte. Nous ne sommes même pas certain que ce soit du C (les accolades et "system" mettent sur la voie, mais il faut deviner)

        Ques veux tu dire par brutalement fiddy ? genr erreur de segmentation ?
      3. Contributeur
        A Char Snipeur,

        Si le programme s'arrête normalement, un simple return 0; ou exit(0); suffira. Mais s'il s'arrête brutalement, genre l'utilisateur tue le programme via le gestionnaire, ce ne sera pas du tout la même démarche.
      4. Contributeur
        Si le programme est fermé brutalement, je ne vois pas comment faire, surtout sous win. à par un script
      5. Contributeur
        Tu ne vois pas car ce n'est pas possible et c'est heureux ^^. Après oui, on peut toujours ruser par rapport à un autre programme qui scrute les programmes mémoires, mais bon... Mais c'est pour ça que j'ai posé la question car j'ai l'impression que c'est ce qu'il souhaite faire.