The man page for err and errx states the following syntax:
void err(int eval, const char *fmt, ...);void errx(int eval, const char *fmt, ...);
Obviously const char *fmt is the format string and ... contains the parameteres for it (just like printf). I know that eval is a code you assign to the error. Since the man page doesn't say anything more specific about the eval parameter, I was wondering:
Is there a rule/ convention, which specifies what error codes should be assigned for specific errors, or it is a choice of the programmer, who is writing the code, to write whatever eval value they deem necessary?
CodePudding user response:
From the man page on my Ubuntu (GNU/Linux) system:
The
err(),verr(),errx(), andverrx()functions do not return, but exit with the value of the argumenteval.
So it's a value that you would pass to exit.
If you want to be portable, C defines EXIT_SUCCESS and EXIT_FAILURE.
That said, you should have no problems returning a number from 0 to 127, with 0 meaning success. The meaning of those numbers is up to you, but usually go up in severity. For example, grep returns 0 if a match is found, 1 if a match isn't found, and 2 if an error occurred.
