当UNIX系统函数出错时,通常会返回一个负值,而且整型变量errno通常被设置为具有特定信息的值。在支持多线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部error以避免一个线程干扰另一个线程。
对于errno应当注意两条规则。第一条规则是:如果没有出错,其值不会被例程清除。因此,仅当函数的返回值指明出错时,才检验其值。第二条规则是:任何函数都不会将error的值设置为0,而且在<errno.h>中定义的所有常量都不为0。
char *strerror(int errnum);
void perror(const char *msg);