20145234黄斐《信息安全系统设计基础》第十周
教材内容概述
解决错误检查问题:使用错误处理包装函数
Unix系统中的错误处理
Unix风格的错误处理
fork、wait等的早期函数的返回值既包括错误代码也包括有用的结果
if((pid=wait(NULL))<0)
{
fprintf(stderr,"wait error: %s\n",strerror(errno));
exit(0);
}
Posix风格的错误处理
许多较新的Posix函数,只能用返回值来表明成功(0)或失败(非0)。任何有用的结果都返回在通过引用传递进来的函数参数中。
if((retcode=pthread_create(&tid,NULL,thread,NULL))!=0)
{
fprintf(stderr,"pthread_create error: %s\n",
strerror(retcode));
exit(0);
}
DNS风格的错误处理
gethostbyname和gethostbyname函数检索DNS(域名系统)主机条目,它们有另外一种返回错误的方法。这些函数在失败时返回NULL指针,并设置全局变量h_errno。
if((p=gethostbyname(name))==NULL)
{
fprintf(stderr,"gethostbyname error: %s\n:",
hstrerror(h_errno));
exit(0);
}
错误处理包装函数
Unix风格的错误处理包装函数
kill函数
void Kill(pid_t pid,int signum)
{
int tc;
if((rc=kill(pid,signum))<0)
unix_error("Kill error");
}
wait函数
pid_t Wait(int *status)
{
pid_t pid;
if((pid=wait(status))<0)
unix_error("Wait error");
return pid;
}
Poisx风格的错误处理包装函数
void Pthread_detach(pthread_t tid)
{
int rc;
if((rc=pthread_detach(tid))!=0)
posix_error(rc,"Pthread_detach error");
}
DNS风格的错误处理包装函数
struct hostent *Gethostbyname(const char *name)
{
struct hostent *p;
if((p=gethostbyname(name))==NULL)
dns_error("Gethostbyname error");
return p;
}
转载于:https://www.cnblogs.com/taigenzhenjun/p/6075776.html
20145234黄斐《信息安全系统设计基础》第十周相关推荐
- 20155227 2016-2017-2 《Java程序设计》第九周学习总结
20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...
- 20155229 2016-2007-2 《Java程序设计》第一周学习总结
20155229 2016-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 1~18章的提问: 第一章:怎样撰写Java才不会沦于死背API文件.使用"复制. ...
- 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结
20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...
- 20155210潘滢昊 2016-2017-2《Java程序设计》第一周学习总结
20155210 2016-2017-2<Java程序设计>第一周学习总结 教材学习内容总结 1.1.1: 本节主要讲了Java的由来,1995年5月23日是Java公认的诞生日.还有版本 ...
- 20175317 《Java程序设计》第一周学习总结
20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...
- 20172318 2016-2017-2 《Java程序设计》第一周学习总结
20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20175208 《Java程序设计》第九周学习总结
20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...
- 20155313 2016-2017-2 《Java程序设计》第二周学习总结
20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...
最新文章
- 问题征集 | 跟计算机史学家对谈是一种怎样的感受
- 安装深度linux无法引导,安装deepin无法引导,求教!
- 记录kafka-flink bug
- matlab调用时间序列工具箱,matlab时间序列工具箱
- 深度学习(四)卷积神经网络入门学习(1)
- windows模拟微信小程序_Windows 版微信新版本内测!小程序可以直接添加到电脑桌面了...
- LeetCode 633. Sum of Square Numbers
- Java零基础系列003——变量
- 非线性数学模型线性化
- QQ快速登录实现原理分析之localhost.ptlogin2.qq.com 怎么会映射到 127.0.0.1问题
- 国内外 48 个最常用学术网站汇总,这可能是史上最全的!
- 电脑网络通过usb分享给手机
- 华为b199usb计算机连接,华为B199如何打开USB调试的方法
- 六(1) Python之列表
- 抽样中误差的相关概念和种类
- 蓝牙耳机播放声音前几秒听不到
- 设计师应该拥有的 50 个很有用的 CSS 代码
- 四轮移动机器人(阿克曼底盘)数学建模
- python读取多个txt文件数据恢复_多个文件内容
- Endnote 软件中的名词解释