Qu'est-ce que Point d'entrée ?

Adresse à laquelle commence l'exécution d'un programme, enregistrée dans l'en-tête ELF. En C, il ne s'agit généralement pas de main mais d'un code de démarrage comme _start, qui initialise puis appelle main.

Nom japonais: エントリポイント

« Point d'entrée » apparaît dans 4 questions d'entraînement réparties sur 2 thèmes, dont Éditeurs de liens, chargeurs et exécutables, Conversion A/N et N/A.

Domaine: Éditeurs de liens, chargeurs et exécutables

S'entraîner : questions sur Point d'entrée

Quelle affirmation concernant l'adresse où l'OS commence l'exécution d'un programme C (point d'entrée) est correcte ?

  1. AC'est toujours le début de la fonction main
  2. BC'est par convention le premier octet de l'exécutable
  3. 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.

« Point d'entrée » dans les explications

Questions mentionnant « Point d'entrée » (4)

  1. Quelle affirmation concernant l'adresse où l'OS commence l'exécution d'un programme C (point d'entrée) est correcte ?
  2. Quelle est la fonction d'un convertisseur analogique-numérique (ADC) ?
  3. Quel est le rôle de l'éditeur de liens dynamique (ld.so, etc.) qui intervient au démarrage d'un programme à liens dynamiques sous Linux ?
  4. Que fait le chargeur de l'OS au démarrage d'un programme (execve sous Linux notamment) ?

Termes associés

Éditeur de liens dynamique Éditeur de liens (linker) Moteur d'inférence (runtime) Relocalisation Chargeur (loader) ASLR Bibliothèque partagée Bibliothèque statique Code indépendant de la position Décoration de noms (name mangling)

Retour au glossaire