Que se passe-t-il si je quitte le programme sans fermeture de fichiers? P>
Y a-t-il des mauvaises choses qui se passent (par exemple, une matrice de descripteur de fichier de niveau d'exploitation n'est pas libérée ..?) P >
et à la réponse la même dans les deux cas p>
avec une sortie programmée, je veux dire quelque chose comme ceci: p> avec un crash inattendu, je veux dire quelque chose comme ceci: p> Si la réponse est la programmation de la langue dépendante, j'aimerais savoir à propos de C et C ++. P> si le La réponse est dépend du système d'exploitation alors je suis intéressé par le comportement Linux et Windows. P> h1> ps h2>
3 Réponses :
Les rangements du système d'exploitation pour vous. C'est comme aller à un ami - il est poli de fermer la porte de la salle de bain et de ne pas les faire faire pour vous. P>
Grande analogie haha
Cela dépend de la façon dont vous sortez. Dans des circonstances contrôlées (via Si votre programme se bloque hors de contrôle ou si elle appelle l'une des variantes Quitter () code>
ou un retour de principal () code>), les données des mémoires tampons (de sortie) seront rinçues et les fichiers fermés de manière ordonnée. Autres ressources que le processus avaient également été libérés. P>
_exit () code> ou
fonctionne, alors le système nettoiera toujours des descripteurs de fichiers ouverts et libérera d'autres ressources, mais les tampons gagnés " t être rincé, etc. p> _exit () code>
Toutes les poignées appartenant à votre processus seront nettoyées. Cependant, tout objet "nommé" B> Les objets du noyau comme des tuyaux nommés et d'autres vont coller. P>