If return 0

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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. VanHelsing
     
    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
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    S'il se ferme correctement ou brutalement ?
    0
  3. lucas06150
     
    Salut,

    tu veux quoi exactement ?
    Comment renvoyer 0 ?
    0
  4. Utilisateur anonyme
     
    si le programme se ferme, on arrete l'ordi
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Réponds correctement à la question si tu veux des réponses.
      Si le programme se ferme correctement ou brutalement ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    mais comment faire un

    if le programme se ferme
    alors arreter l'ordi

    ?
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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 ?
      0
    2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      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 ?
      0
    3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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.
      0
    4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      Si le programme est fermé brutalement, je ne vois pas comment faire, surtout sous win. à par un script
      0
    5. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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.
      0
  7. Utilisateur anonyme
     
    merci beaucoup de votre aide.
    0