Closed Yamakaky closed 11 years ago
Un out of memory se gère dans l'application en appelant malloc...
Je veux dire un out of memory du programme, pas de l'os, genre si un programme a remplit complètement sa plage mémoire, il renvoie 1, d'où un affichage d'erreur de la part de l'OS
Oui, quand tu fais un programme et que tu manques de mémoire, tu demande plus de mémoire grâce à malloc... Pas besoin de quitter avec des erreurs.
Et quand il n'y a plus de mémoire disponible ?
alors c'est malloc qui renvoie une erreur lors de la requete du prog donc pas de pb je pense
non, le malloc renvoie 0 en z. Je pense qu'une valeur de retour (return en java et C) permettrai de dire à l'OS si l’exécution du programme s'est bien déroulée
ouais. mais bon si z =0 on sait que l'execution du programme s'est mal passée. vous vous voudriez des infos plus detaillées sur le crash?
De toute façon, il faut une valeur de retour pour indiquer à l'OS que le programme à fini son exécution ? Ça correspond à menu/quitter irl
Je vais être clair sur comment un programme se termine de manière normale.
Une fois arrivé à la fin de son exécution, ou si il rencontre une erreur grave, il appelle une routine du kernel qui dit à l'OS qu'il a fini son exécution.
Cette routine accepte une valeur de retour, qui sera affichée par la console. Après, ce n'est qu'un code hexa. En aucun cas l'OS n'a à traiter cette valeur. Donc en un sens tu as raison, mais si le programme manque de mémoire, il lui suffit d'en demander plus à l'aide de malloc, et de la libérer une fois fini avec free. Ceci n'est pas inhérent à l'OS qui se contente d'allouer la mémoire demandée.
C'est bon, fonctionnalité implémentée, INT 0x11 finira le programme avec le message B.
int de fin de programme : b = 0 : RAS b = 1 : out of memory