If return 0

Résolu/Fermé
Utilisateur anonyme - 15 oct. 2010 à 17:53
 Utilisateur anonyme - 23 oct. 2010 à 19:27
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

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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
15 oct. 2010 à 18:17
S'il se ferme correctement ou brutalement ?
0
Salut,

tu veux quoi exactement ?
Comment renvoyer 0 ?
0
Utilisateur anonyme
16 oct. 2010 à 11:10
si le programme se ferme, on arrete l'ordi
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
16 oct. 2010 à 12:38
Réponds correctement à la question si tu veux des réponses.
Si le programme se ferme correctement ou brutalement ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
21 oct. 2010 à 17:46
mais comment faire un

if le programme se ferme
alors arreter l'ordi


?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
21 oct. 2010 à 22:01
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
Modifié par Char Snipeur le 22/10/2010 à 09:45
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
22 oct. 2010 à 11:25
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
22 oct. 2010 à 12:52
Si le programme est fermé brutalement, je ne vois pas comment faire, surtout sous win. à par un script
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 22/10/2010 à 13:03
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
Utilisateur anonyme
23 oct. 2010 à 19:27
merci beaucoup de votre aide.
0