#include <errno.h>
Some functions in the library set the global variable
errno when an error occurs. The file,
<errno.h>, provides symbolic names for various error
codes.
The errno global variable is not safe to use in a
threaded or multi-task system. A race condition can occur if a task is interrupted
between the call which sets error and when the task
examines errno. If another task changes
errno during this time, the result will be incorrect
for the interrupted task.