this post was submitted on 28 May 2025
720 points (96.3% liked)

Programmer Humor

24373 readers
900 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 

Also, do y'all call main() in the if block or do you just put the code you want to run in the if block?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 3 points 3 weeks ago* (last edited 3 weeks ago) (8 children)

Can someone explain to me how to compile a C library with "main" and a program with main? How does executing a program actually work? It has an executable flag, but what actually happens in the OS when it encounters a file with an executable file? How does it know to execute "main"? Is it possible to have a library that can be called and also executed like a program?

Anti Commercial-AI license

[โ€“] [email protected] 1 points 3 weeks ago

There are a lot of other helpful replies in this thread, so I won't add much, but I did find this reference, which you could read if you have a lot of free time. But I particularly liked reading this summary:

  • _start calls the libc __libc_start_main;
  • __libc_start_main calls the executable __libc_csu_init (statically-linked part of the libc);
  • __libc_csu_init calls the executable constructors (and other initialisatios);
  • __libc_start_main calls the executable main();
  • __libc_start_main calls the executable exit().
load more comments (7 replies)