errno
错误码 / errno
Linux中系统调用的错误都存储于 errno中,errno由操作系统维护,存储就近发生的错误,即下一次的错误码会覆盖掉上一次的错误。
PS: 只有当系统调用或者调用lib函数时出错,才会置位errno!
打印错误信息
perror
作用:打印系统错误信息, perror用来将上一个函数发生错误的原因输出到标准设备(stderr) 。参数 s 所指的字符串会先打印出,后面自动再加上错误原因字符串。此错误原因依照全局变量errno 的值来决定要输出的字符串。
头文件:#include <stdio.h>
函数原型:void perror(const char *s)
参数:
- s: 字符串提示符
输出形式:const char *s: strerror(errno) //提示符:发生系统错误的原因
返回值:无返回值
strerror
作用:将错误码以字符串的信息显示出来
头文件:#include <string.h>
函数原型:char *strerror(int errnum);
参数:
- errnum: 即errno
返回值:返回错误码字符串信息
stderr
在默认情况下,stdout是行缓冲的,他的输出会放在一个buffer里面,只有到换行的时候,才会输出到屏幕。而stderr是无缓冲的,会直接输出.
如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。
fprintf(stderr, "Can't open it!\n"); 
fprintf(stdout, "Can't open it!\n"); 
运行结果
Can't open it!
Can't open it!
转向标准输出到磁盘文件tmp.txt
my.exe > tmp.txt
Can't open it!
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号