[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: sys_nerr

> >I've got an app I'm trying to compile in LSB mode.
> >It builds a table of its' own (short) error messages, 
> >not wanting to use strerror/perror for some reason
> >I'm not aware of.
> Not using strerror() is a really bad idea if it is present
> on a specific platform.

The program in question - a scripting language - REALLY
wants to use its' own text if I understand it; "system errors" 
are only one class of errors and it builds a table of short
string codes that can be "caught"; here it doesn't want (possibly
language-varying) multiword text error messages like strerror 
can return. Elsewhere it /does/ use strerror for certain printouts.

> Note that there are funny platforms like BeOS where valid
> errno values cover a sparse range and use large negative values!

I see code in the app that tries to work with BeOS - now it
makes a bit more sense.

> >Of course, sys_nerr is not a public symbol in the LSB.
> >How would I work around this?
> Call strerror() and check if it returns a NULL pointer.

sterror doesn't return NULL; it returns "Unknown error x" if 
you call it with an out-of-range x. 

Reply to: