博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Head First C 第九章 进程与系统调用 出错处理
阅读量:6006 次
发布时间:2019-06-20

本文共 641 字,大约阅读时间需要 2 分钟。

hot3.png

Head First C 第九章 进程与系统调用 出错处理

大多数的系统调用以相同的方式出错

需求:想知道系统调用为什么会失败,因此所有的系统调用都遵循“失败黄金法则”。

尽可能的收拾残局

把errno变量设为错误码

返回-1

errno变量是定义在errno.h中的全局变量,和它定义在一起的还有很多标准错误码。

EPERM=1 不允许操作

ENOENT=2 没有该文件或目录

ESRCH=3 没有该进程

使用strerror打印标准错误

#include 
#include
#include
#include
int main() { if (execl("ifconfig", "ifconfig", NULL) == -1) if (execlp("kryptonite", "kryptonite", NULL) == -1) { fprintf(stderr, "Can not run ipconfig:%s\n", strerror(errno)); return 1; } return 0;}
  • 系统调用在出错时通常会返回-1,但不是绝对的
  • 系统调用在出错的同时,将errno变量设为错误码。

转载于:https://my.oschina.net/alextuan/blog/652246

你可能感兴趣的文章
mongols的反向代理和负载均衡功能
查看>>
scala 简要: xml处理
查看>>
Python学习笔记:开始Python编程
查看>>
Unity 如何制作星空粒子效果?
查看>>
python模块: urllib模块详解 !!
查看>>
将你的物联网设备位置快速接入到地图上,只需要10分钟!
查看>>
oss迁移以及校验
查看>>
即食水产消费品公司“不等食品”获千万元级A轮融资,险峰长青领投
查看>>
职业生涯之初恋,没有攻略
查看>>
实现动画方式深度解析
查看>>
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 32 章 回归测试_32.4. TAP Tests
查看>>
最意想不到的5个APP UI 设计范例
查看>>
Nginx Unit 1.8.0 发布,动态 Web 应用服务器
查看>>
从运维菜鸟到大咖,你还有多远
查看>>
Vaqso开发新型VR系统组件,可给VR体验增加气味
查看>>
金山云智慧城市全局详解:这场马拉松,我们怎么跑?
查看>>
博弈论 斯坦福game theory stanford week 3.1_
查看>>
python Kmeans算法解析
查看>>
mssql 怎么配置指定的表 不允许删除数据?
查看>>
sklearn
查看>>