The file #includetells the compiler what the function looks like, in what type it returns, how many parameters, what types it accepts, but does not tell the compiler the contents.
The flag -lmincludes a real math library that contains code for the functions to be called.
printf(), fread() . stdio.h, , . C , .