CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C/C++] exit(0)

elhuron
elhuron
Niveau 6
13 décembre 2007 à 21:00:48

Bonsoir.
J´ai besoin de quitter a tout momment dans mon programme. Mais il se trouve que je me trouve dans plusieurs fonctions, si je veux quitter proprement, les tours de boucles se finiront, quelques Flips vont s´effectuer.
Un moyen est de flipper seulement si on continue apres, mais ca demande plus de temps.

Un exit(0) peut etre utiliser pour quitter a tout moment, mais c´est surtout utilisé la ou il y a des problemes, chargement d´images, par exemple.

Mais je veux utiliser cà comme ca, pas pour question de problemes, comme dit précedemment.
Ca se fait d´utiliser cette fonction pour quitter ?
Normalement, le systeme d´exploitation gère tout ce qui n´a pas été correctement conclu.

Merci de m´informer un peu plus sur ce sujet :)

naruto_forever
naruto_forever
Niveau 10
13 décembre 2007 à 21:16:18

Tu peux toujours faire return 1 si t´as des problèmes.
Je pense pas que ça change quoi que ce soit si tu utilises exit(0) mais bon je laisse les pros répondre ^^

godrik
godrik
Niveau 30
13 décembre 2007 à 23:16:22

que tu quittes ton application en sortant de main ou en faisant un exit c´est pareil pour le système.

Dans tous les cas, le ssytème fera le menage de ton processus. Cependant certains OS dont je tairais le nom, ne liberent (ou peut etre ne liberaient ) pas certaines ressources (en l´occurence les fichiers et connexions reseaux) immediatement si elles ont été mal fermé. Il est donc préférable de fermer cela proprement quand meme.

Cependant, le système est quand meme censé se débrouiller

elhuron
elhuron
Niveau 6
13 décembre 2007 à 23:24:25

Merci pour ces infos. :)

J´utiliserai donc pas exit(0) quand j´utilise un fichier ou encore des conexions resaux.
Ca tombe bien, la ou je quitte avec exit(0) c´est juste une fois, pas de fichier ouvert avant, sinon refermé.
Pour les connexions resaux, je compte les integrer dans mon projet, mais je ferai en sorte de quitter proprement, si j´arrive a les implementer.

dnob700
dnob700
Niveau 10
14 décembre 2007 à 00:15:39

"ne liberent (ou peut etre ne liberaient )"

Je te rassure, tu peut mettre un passé sans problème.

guyver2
guyver2
Niveau 10
14 décembre 2007 à 00:15:44

si tu as des ressources un peu critiques (comme dit precedement), tu peux ajouter une fonction appelé automatiquement lors de la fin (normale ou via un exit(n)) qui s´occupe de faire le menage vite fait.

void menage()
{
// netoyage
}

et dans ton main (ou autre part):
atexit(menage);
il me semble que c´est a peu pres la bonne syntaxe.

et je voulais juste rajouter une precision sur ce qu´a dit Godrik.
exit ou fin normale, l´OS s´en fout, juste que en principe on fait un exit(n) en cas d´erreur avec n un entier qui donne le code de l´erreur rencontrer. Donc un exit(0) signifie fin sans erreur.

Fvirtman
Fvirtman
Niveau 10
14 décembre 2007 à 00:41:10

godrik > certains OS dont je tairais le nom, ne liberent (ou peut etre ne liberaient )

Autant le systeme <...> 95 était a chier, autant ça a évolué depuis :-)

godrik
godrik
Niveau 30
14 décembre 2007 à 11:07:32

En version 2000, ca arrivait encore. Dans des cas débiles certes, masi ca arrivait.
Plus aucun processus vivant n´avait de descripteur de fichier ouvert sur un fichier donné. Pourtant il était toujours impossible de le supprimer pour "Un processus l´a ouvert en lecture/ecriture exclusive". Alors que le processus en question était tué depuis bien longtemps.

elhuron
elhuron
Niveau 6
15 décembre 2007 à 15:04:08

Merci pour ces infos supplémentaires.
Si je suis dans un cas critique, j´utiliserai donc une fonction de nettoyage, (si je peux pas quitter autrement).

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment