it may return a value to its caller, which is in effect the environment in which the program was executed.
Typically, a return value of zero implies normal termination; non-zero values signal unusual or erroneous
termination conditions.
as a reminder that programs should return status to
their environment.