侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 239 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

error函数用法详解

noerror
2022-11-08 / 0 评论 / 0 点赞 / 137 阅读 / 558 字 / 正在检测是否收录...

error函数用法详解

error函数简介

  • 头文件包含
#include <error.h>
  • 函数定义
void error(int  status , int  errnum , const char * format , ...);
void error_at_line(int  status , int  errnum , const char * filename ,
                   unsigned int  linenum , const char * format , ...);
extern unsigned int  error_message_count ;
extern int  error_one_per_line ;
extern void (* error_print_progname ) (void);

error函数常见使用错误

  • 编译错误
    warning: implicit declaration of function ‘error’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <error.h>

error函数详细描述

error ()是一个通用的错误报告函数。它刷新stdout ,然后向stderr输出程序名、一个冒号和一个空格、由printf (3)-style格式字符串format指定的消息,如果errnum不为零,则输出第二个冒号和一个空格,后跟strerror(errnum) 给出的字符串。在参数列表中,format所需的任何参数都应该跟在format之后。输出以换行符结束。
error ()打印的程序名是全局变量program_invocation_name (3)的值,program_invocation_name最初与main ()'s argv[0] 的值相同,可以修改该变量的值以改变error ()的输出
如果status有一个非零值,那么error ()调用exit (3)来终止程序,使用给定的值作为退出状态。
error_at_line ()函数与error ()完全相同,只是增加了参数filename和linenum 。生成的输出与error ()相同,只是在写入程序名后:冒号、filename 的值和linenum 的值。调用error_at_line ()时,预处理器值__LINE__和__FILE__可能有用,但也可以使用其他值。例如,这些参数可以引用输入文件中的位置。
如果全局变量error_one_per_line设置为非零,则具有相同值filename和linenum的error_at_line ()调用序列将导致只输出一条消息(第一条)。
全局变量error_message_count计算error ()和error_at_line ()输出的消息数
如果全局变量error_print_progname被分配了函数的地址(即不为空),则调用该函数,而不是在消息前加上程序名和冒号。函数应该将合适的字符串打印到stderr

0

评论区