Bonjour a tous
Je ne suis pas tout a fait nouveau sur ce forum juste que je ne retrouve plus mon user...
Bon venons en au point :
J'ai un devoir a rendre Lundi portant sur la compilation de programmes sous Linux avec gcc 3.2 ( la version de GCC n'a que peu d'importance pour cette question ).
Etant arrive a la derniere question j'aimerais avoir votre aide :
J'ai un tout petit programme ( seulement une fonction main ) se terminant par un appel a la fonction exit( int ) definie dans stdlib.h ( vous le saviez deja hein?:p ).
La question est que se passerait-il si on enlevait l'instruction exit a la fin du code source?
J'ai essaye et le programme a certes ete execute mais a la fin j'ai recu un "segmentation fault".
Mon intuition me dit que c'est parce que le processus n'a pas ete termine et que dans ce processus le "program counter" est incremente indefiniment : ainsi il peut tenter d'executer des instructions qui ne sont pas dans les limites des adresses memoires dont le processus est autorise a acceder, ou tout simplement le PC tente d'acceder a des emplacements memoires ( instructions stockees la ou pas ) qui ne lui sont pas autorisees.
C'est la raison pour laquelle l'OS termine brutalement le processus je suppose?
Qu'en dites-vous?
Merci pour votre aide![]()
Partager