Éditeurs de liens, chargeurs et exécutables
Quelle affirmation concernant l'adresse où l'OS commence l'exécution d'un programme C (point d'entrée) est correcte ?
- AC'est toujours le début de la fonction main
- BC'est par convention le premier octet de l'exécutable
- CCe n'est généralement pas main mais un code de démarrage comme _start, qui effectue l'initialisation puis appelle main
Afficher la réponse et l'explication
Réponse : C. Ce n'est généralement pas main mais un code de démarrage comme _start, qui effectue l'initialisation puis appelle main
L'éditeur de liens intègre au programme les objets de démarrage fournis par le runtime C (crt1.o, etc.) et prend comme point d'entrée le _start qu'ils contiennent. _start récupère les arguments de ligne de commande sur la pile, initialise la bibliothèque standard et les objets globaux, puis appelle main. Au retour de main, il appelle exit avec la valeur de retour pour effectuer le traitement de fin.
Continuer : 9 autres questions sur Éditeurs de liens, chargeurs et exécutables