Wat is Entry point?

Adres waar de uitvoering van een programma begint. Wordt vastgelegd in de ELF-header. In C is dat meestal niet main maar opstartcode zoals _start, die initialiseert en daarna main aanroept.

Japanse benaming: エントリポイント

“Entry point” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Linker, loader en uitvoerbare formaten.

Vakgebied: Linker, loader en uitvoerbare formaten

Nu oefenen: vragen over Entry point

Welke uitspraak is juist over het adres waar het OS in een C-programma de uitvoering begint (entry point)?

  1. AHet is altijd het begin van de functie main
  2. BHet is vastgelegd als het eerste byte van het uitvoerbare bestand
  3. CMeestal is het niet main maar opstartcode zoals _start, die initialiseert en daarna main aanroept
Antwoord en toelichting tonen

Antwoord: C. Meestal is het niet main maar opstartcode zoals _start, die initialiseert en daarna main aanroept

De linker bouwt het door de C-runtime geleverde opstartobject (zoals crt1.o) in het programma in en gebruikt _start daarin als ingang. _start haalt de opdrachtregelargumenten van de stack, initialiseert onder meer de standaardbibliotheek en globale objecten en roept dan main aan. Als main terugkeert, roept het met de retourwaarde exit aan en verzorgt de beëindiging.

Vragen met “Entry point” (1)

  1. Welke uitspraak is juist over het adres waar het OS in een C-programma de uitvoering begint (entry point)?

Verwante termen

Linker ASLR BSS-sectie Dynamisch linken Dynamische linker ELF Fragmentatie Gedeelde bibliotheek (shared library) GOT (global offset table) Heap

Naar de woordenlijst