It's hard when compilers force you to use "main".
int main(int argc, char **argv);
I once wrote a liblinux library for Linux software development with freestading C. One of the things I did was replace the "main" function with a "liblinux_start" function.