On Mon, Sep 18, 2017 at 08:52:08PM -0400, Random832 wrote:
On Thu, Sep 14, 2017, at 15:37, Steve Johnson wrote:
I wrote a paper on error messages at one point.??
I had examples from
bad to best.?? In a nutshell (worst to best):
* <program aborts, leaving the world in an unknown state>
* "internal error",?? "beta table overflow", "operation
failed"
* "Writing the output file failed"
* "File xxx could not be opened for writing."
* "File xxx could not be opened for writing: check the file location
and permissions"
* "Writing the output file xxx caused an error.?? See <link> for
possible reasons and corrections"
Most git messages fall between 2 and 3.?? But there are occasional 4's
and 5's.
Just out of curiosity, where does perror(filename), quite possibly the
*most* common error message on Unix as a whole, fall on your scale? It
says which of the file location or permissions (or whatever else) it is,
but not whether it was attempting to open it for reading or writing.
So in the BitKeeper source, perror is redifined to my_perror which is
this:
void
my_perror(char *file, int line, char *msg)
{
char *p = 0;
int save = errno;
if (p = getenv("_BK_VERSION")) {
if (strneq(p, "bk-", 3)) p += 3;
fprintf(stderr, "%s:%d (%s): ", file, line, p);
} else {
fprintf(stderr, "%s:%d: ", file, line);
}
if (p = strerror(errno)) {
fprintf(stderr, "%s: %s\n", msg, p);
} else {
fprintf(stderr, "%s: errno=%d\n", msg, errno);
}
errno = save;
}
libc should do that.