ZeroIsSuccess

Last edit August 24, 2007
Usually, on success, a program returns zero to the OS. For example:

 int main () {

...

if (!valid_input) { printf("Operation failed!"); return 1; }

return 0; /* success */ }


Likewise, many operating systems and libraries have the convention of returning zero from successful system calls.
  • MicrosoftWindows: NOERROR == S_OK == 0, errors are positive.
  • MacOs, MacOsx: noErr == 0, minor errors are negative, major errors are positive.
  • Unix: many calls that simply return success/failure use 0 for success and -1 for failure. Also no error if errno==0.

"One of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs." -- Robert Firth
CategoryOperatingSystem