Even after many years of working with C and C++, I continue to make new discoveries! All these years I had returned 0
from the main
function on success and a non-zero value (almost always 1
) on failure. Somewhere at the back of my head it had always troubled me that there was no standardization on these return values and that I was returning what were essentially magic numbers.
I recently discovered that though the C and C++ languages do not have anything to say about this issue (like they rightly should not), the C and C++ standard libraries do provide EXIT_SUCCESS
and EXIT_FAILURE
. These can be used to return from the main
function. These are defined in the stdlib.h
and cstdlib
headers for C and C++ respectively.
Curious to see what values they represented, I looked up /usr/include/c++/5/cstdlib
and found this:
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
Tried with: GCC 5.2.1 and Ubuntu 15.10