Who calls main method in C?

The run-time environment calls the main function to begin program execution.

On Linux operating system, C runtime file can be found in either /usr/lib directory or /lib directory.

crt0 (or crt0.o, gcrt0.o, mcrt0.o) is a set of execution startup routines that are platform-dependent, and is required in order to compile using the GCC and other GNU tools.

crt stands for 'C runtime'.

So,Ultimately the main() is called by startup routines in the crt0