> >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.
