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_FAILURE. These can be used to return from the
main function. These are defined in the
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