
Beman Dawes wrote:
"Peter Dimov" <pdimov@mmltd.net> wrote in message news:00b901c55092$d30fc300$6401a8c0@pdimov2...
Beman Dawes wrote:
"Peter Dimov" <pdimov@mmltd.net> wrote in message news:000e01c54fdb$be752eb0$6401a8c0@pdimov2...
I also don't like the fact that the error codes aren't the standard errno E* constants, but we already had this debate once. :-) (As with threading, it is my opinion that Posix should be acknowledged.)
The intent _is_ to supply the actual system error code (errno for POSIX). There is another function available to convert to a portable code if desired.
My point was that errno should be the portable error code. This will save you one mapping.
On a POSIX system that would work well. But what happens on a non-POSIX system? The E* macros won't be defined in <cerrno>. How will the user get access to them? Are you suggesting they be defined in one of the filesystem headers? I don't see how that would work.
I am suggesting that they shall be defined in <cerrno>. If this doesn't seem acceptable to you, I am not opposed to the filesystem library defining its own aliases of all applicable E* constants. If this is the case, I am suggesting that there shall be an 1:1 mapping of aliases to E* names and that the aliases shall have the same value as the corresponding E* names.