Compilers take a computer language file or files and convert them to machine level instructions called executables.
Most modern compilers have several stages including a preprocessor and an optimizer.
A magic number is a tag which uniquely identifies a file type to the machine. The man pages as well as the on-line documentation are good sources of information about the compilers. Here are some basic compiler flags and what they do. This creates a file called a.out in the current working directory that is the program created by compiling file.c. You can include libraries by using the -l and the library name.