When a C program is executed by the kernelby one of the exec functions, which we describe inSection 8.10.a special start-up routine is called before the main function is called. The executable program file specifies this routine as the starting address for the program; this is set up by the link editor when it is invoked by the C compiler. This start-up routine takes values from the kernel, the command-line arguments and the environmentand sets things up so that the main function is called as shown earlier.

 

Because C has no concept of "plug in". So if you want to use, say, malloc() someone has to initialize the necessary data structures. The C programmers were lazy and didn't want to have to write code like this all the time:

main() {
    initialize_malloc
();
    initialize_stdio
();
    initialize_
...();
    initialize_
...();
    initialize_
...();
    initialize_
...();
    initialize_
...();

    
... oh wow, can we start already? ...
}

So the C compiler figures out what needs to be done, generates the necessary code and sets up everything so you can start with your code right away.

相关文章:

  • 2021-11-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-15
  • 2021-08-11
  • 2021-06-11
  • 2021-11-30
猜你喜欢
  • 2022-01-12
  • 2021-10-20
  • 2022-01-27
  • 2021-08-29
  • 2021-10-03
  • 2021-07-16
  • 2021-08-31
相关资源
相似解决方案