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