电子产业一站式赋能平台

PCB联盟网

搜索
查看: 102|回复: 0
收起左侧

嵌入式Linux:strerror函数和perror函数

[复制链接]

679

主题

679

帖子

2524

积分

三级会员

Rank: 3Rank: 3

积分
2524
发表于 2024-6-13 12:00:00 | 显示全部楼层 |阅读模式

4jdph3iyd3g64027628.gif

4jdph3iyd3g64027628.gif

点击上方蓝色字体,关注我们
strerror函数和perror函数是C标准库中的两个函数,用于处理和显示错误信息。它们帮助程序员在程序运行过程中了解并诊断错误原因。

strerror函数,返回错误消息字符串,需要程序员自己调用printf等函数来打印错误消息。更加灵活,可以组合其他字符串一起使用。

perror函数,直接打印错误消息,适合简单的错误报告。不需要额外的printf调用。
1
strerror函数
strerror函数将错误代码转换为相应的错误消息字符串。其原型为:

  • char *strerror(int errnum);

    参数
  • errnum:错误代码,通常是全局变量errno的值。
    返回值
  • 返回指向描述错误的字符串的指针。

    在以下示例中,尝试打开一个不存在的文件会导致fopen失败,errno被设置为相应的错误代码。strerror(errno)将该错误代码转换为一个描述错误的字符串并打印出来。

  • #include#include#include
    int main() {    FILE *file = fopen("nonexistent.txt", "r");    if (file == NULL) {        printf("Error opening file: %s
    ", strerror(errno));    }    return 0;}
    2
    perror函数
    perror函数直接打印一条描述错误的消息,错误信息包括由errno指定的错误描述。其原型为:

  • void perror(const char *s);

    参数
  • s:一个用户提供的前缀字符串,如果非空,则首先打印该字符串,然后打印一个冒号和空格,再打印错误消息。
    返回值
  • 无返回值。

    在以下示例中,perror函数输出的消息包括用户提供的前缀字符串和错误描述。

  • #include#include
    int main() {    FILE *file = fopen("nonexistent.txt", "r");    if (file == NULL) {        perror("Error opening file");    }    return 0;}
    例如,如果文件不存在,输出可能是:

  • Error opening file: No such file or directory

    ett5f4uvacs64027728.jpg

    ett5f4uvacs64027728.jpg

          

    ddxdyfqz0ka64027828.gif

    ddxdyfqz0ka64027828.gif

    点击阅读原文,更精彩~
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表