I should note that strerror(3) is not thread-safe on every system. It used to simply return a pointer to a static const string, which is not a problem, but with the advent of localization (i.e. using NLS) that changed. However a thread-safe function, strerror_r(3) is available on most systems where threads are supported... -- Matt