APUE升级004

UNIX 环境高级网络编程 (简称APUE)

第一章 UNIX 基础知识

第七节 错误处理

文档中出现的代码均会重新手敲一遍,后续可能会看时间补充下练习代码
因为文档代码依赖apue.h文件,我已经把相关用到的代码单独拎出来,一起放在工程里面,方便编译和学习

Blog主要分三部分

  • 第一部分是代码,主要是自我学习和练习代码能力,可以直接运行,工程会同步更新到github上面
  • 第二部分是注释,主要是描述工程中用到的一些不熟悉的结构体和头文件
  • 第三部分是运行,主要是代码编译以及后面的运行实例结果

代码

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <errno.h>

using namespace std;

int main(int argc,char* argv[])
{
    cerr << "EACCESS: " << strerror(EACCES) << endl;  /* define in string.h */
    errno = ENOENT;
    perror(argv[0]);    /* define in stdio.h */
    
    return 0;
} 

注释

该代码核心点在以下两个函数
(1)、strerror

原型: char *strerror(int errnum);
作用: 将指定的整型错误码转换成字符串,并且通过返回值返回
参数:

int errnum: 整型错误码,可通过errno(线程安全,thread-local variable) 获取
返回值:
成功: 返回错误码对应的字符串提示
提示:返回"Unknown error errnum"

(2)、perror

原型: void perror(const char *str);
作用: 把一个描述性错误消息输出到标准错误 stderr。首先输出字符串 str,后跟一个冒号,然后是一个空格,然后是真正的错误信息
参数: const char *str: 自定义错误输出,显示在原本的错误信息之前
返回值: 无


运行

运行命令
cd …/build
make -j4
cd …/bin
./errno_print

在这里插入图片描述

代码工程github地址


每日一句

     与恶龙缠斗过久,
     自身亦成为恶龙。
     凝视深渊过久,
     深渊将回以凝视。

                    《善与恶的彼岸》
                                 ——尼采

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值