说明

err()和warn()系列函数在标准错误输出上显示格式化的错误消息。在所有情况下,都将输出程序名称的最后一部分,冒号和空格。如果fmt参数不为NULL,则输出类似printf(3)的格式化错误消息。输出以换行符终止。

err(),verr(),warn()和vwarn()函数会根据全局变量errno附加从strerror(3)获得的错误消息,除非fmt参数为NULL,否则在其后附加另一个冒号和空格。

errx()和warnx()函数不会附加错误消息。

err(),verr(),errx()和verrx()函数不会返回,而是以参数eval的值退出。

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
err(),errx(),
warn(),warnx(),
verr(),verrx(),
vwarn(),vwarnx()
Thread safetyMT-Safe locale

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

ERR - Linux手册页

Linux程序员手册 第3部分
更新日期: 2020-06-09

示例

显示当前的errno信息字符串并退出:

p = malloc(size);
if (p == NULL)
    err(EXIT_FAILURE, NULL);
fd = open(file_name, O_RDONLY, 0);
if (fd == -1)
    err(EXIT_FAILURE, "%s", file_name);

显示错误消息并退出:

if (tm.tm_hour < START_TIME)
    errx(EXIT_FAILURE, "too early, wait until %s",
            start_time_string);

警告错误:

fd = open(raw_device, O_RDONLY, 0);
if (fd == -1)
    warnx("%s: %s: trying the block device",
            raw_device, strerror(errno));
fd = open(block_device, O_RDONLY, 0);
if (fd == -1)
    err(EXIT_FAILURE, "%s", block_device);

名称

err,verr,errx,verrx,warn,vwarn,warnx,vwarnx-格式化的错误消息

遵循规范

这些功能是非标准的BSD扩展。

语法

#include <err.h>

void err(int eval, const char *fmt, ...);

void errx(int eval, const char *fmt, ...);

void warn(const char *fmt, ...);

void warnx(const char *fmt, ...);

#include <stdarg.h>

void verr(int eval, const char *fmt, va_list args);

void verrx(int eval, const char *fmt, va_list args);

void vwarn(const char *fmt, va_list args);

void vwarnx(const char *fmt, va_list args);

另外参见

error(3),exit(3),perror(3),printf(3),strerror(3)

日期:2019-08-20 18:00:12 来源:oir作者:oir