Re: Necessity of multi-level error propogation
On Mar 13, 2:39 pm, Jeff Schwab <j...@schwabcenter.com> wrote:
James Kanze wrote:
On Mar 12, 10:57 am, Jeff Schwab <j...@schwabcenter.com> wrote:
James Kanze wrote:
On Mar 11, 7:54 pm, peter koch <peter.koch.lar...@gmail.com> wrote:
The only know alternative to exceptions is return codes
For a very liberal meaning of "return code". You can use
out parameters, global variables (ever heard of errno?)
errno isn't a global variable, it's a macro. On the system
I'm using to post this message, it maps to a function call.
I was talking about the concept, not the actual
implementation. According to the C standard, errno is a
"symbol" which expands to a modifiable lvalue. (It may be a
macro, or an indentifier.) Historically, it was usually a
global variable, and earlier versions of Posix required
that. A global variable doesn't work very well in a
multithreaded environment, however; I'm pretty sure that
Posix requires that it be distinct for each thread. In the
end, though, it is still a global variable, although
normally a thread local one.
That's like saying a function is a global variable, just
because it accesses one. errno is a macro, period, with all
the attendant problems that macros cause. See my reply
elsethread.
Yes, but in the context of my mentionning it "(ever heard of
errno?)", I was referring to the problems due to the fact that
it ends up being a global variable (after, perhaps, a level of
indirection). In reality, of course, it has both all of the
problems of global variables, and all of the problems of macros.
(And of course, when I was learning C, it was a global
variable:-).)
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34