1639_perror的函数功能以及简单测试
全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com)
继续分析之前的shell程序代码,看到了一个fork1的实现。
Fork之前还是看过的,但是也已经忘得差不多了,这个fork1就是fork的一种应用封装。而这里面要弄懂它有别于fork本身的地方,还得弄明白perror函数的使用。
1. perror也是一个库函数,主要的功能就是打印系统错误消息。
2. 这个接口对于传入的参数是有要求的,稍后我倒是可以做一个非常规使用的测试。
3. 在调用这个接口的时候,执行的错误信息会随之附加在输出消息之后。
4. 如果运行出错则返回-1。
1. 这个是我在看UNIX或者linux接口的时候看到的满足的标准比较多的一个接口了,看起来折腾操作系统最终的归宿其实还是少不了要跟这种标准打交道。
2. 这个函数也是近期看到的比较适应于Linux的环境的了,没有之前看到的符合POSIX,linux实现可能略有不同的描述。
为了测试perror的基础功能,我增加了如上的代码做一个简单的测试。
这是编译后运行的效果,从这里看这个错误消息输出的时候其实是自带着换行符号的。而前面提到的errno,有时候提供的信息也不一定是错误,成功也是其中的一种。我现在的程序没有遇到什么错误,因此这里的输出都是成功的。
关于错误参数的测试,其实我这里测试错误,应该顺便输出其返回值。为此,修改如下:
这里测试遇到了一点意外:
编译通不过!
其实原因也真的是很简单,那就是这个文档中关于返回值的理解是有误的。而这个函数的原型本身返回值其实不是int。
关于函数原型其实是可以从这里看到的。
然而,文档中又描述了错误的返回值。具体如下:
这里不仔细看或许还以为是这个函数的返回值是-1,其实这里提到的则是系统调用的返回值。因此,两者是不对等的。再退一步,看文档的标注信息,其实这个函数不是系统调用分类中的函数。因此,这里只是我自己前面看文档中犯了一个小错误罢了。
1639_perror的函数功能以及简单测试相关推荐
- 定义两个同名的重载函数,分别求矩形和圆的周长,然后在main函数中对这两个函数进行调用并测试其功能
定义两个同名的重载函数,分别求矩形和圆的周长,然后在main函数中对这两个函数进行调用并测试其功能. 求矩形的周长时需要输入矩形的长和宽:求圆的周长时需要输入圆的半径. #include<ios ...
- 联盛德W806-KIT开发板试用评测系列之二:ADC 功能使用与测试
联盛德W806-KIT开发板试用评测系列 之二:ADC 功能使用与测试 作者:大信<QQ8125036> 今天着手对W806开发板ADC功能做测试,都知道ADC在物联网应用场景中常需要用到 ...
- c ++函数功能查询器_C ++ 17新功能和技巧
c ++函数功能查询器 目录 (Table of Contents) Introduction 介绍 Settings an integrated development environment (I ...
- 求介绍matlab函数用法的书,MATLAB初学者教程--函数用法的简单介绍
1.4 函数用法的简单介绍 1.4.1什么是函数 似乎很多人一听到函数这个词就会想到数学中的某个概念,然后对于恐惧数学的同学就开始打退堂鼓.在matlab当中到处可以用到函数,它的出现可以让我们用很简 ...
- LUA GC 简单测试
LUA GC 简单测试 function table.count(t)if type(t) ~= "table" thenassert(false)returnendlocal n ...
- tf.pad函数功能介绍
tf.pad()函数主要是对张量在各个维度上进行填充,该函数的参数如下所示: pad(tensor,paddings,mode='CONSTANT',name=None ) 其中: tensor是待填 ...
- Java—实现 IOC 功能的简单 Spring 框架
编写一个实现 IOC 功能的简单 Spring 框架,包含对象注册.对象管理.及暴 露给外部获取对象的功能,并编写测试程序.扩展注册器的方式,要求采用 XML 和 txt 文件. 源代码 packag ...
- Delphi Format函数功能及用法详解
DELPHI中Format函数功能及用法详解 DELPHI中Format函数功能及用法详解function Format(const Format: string; const Args: array ...
- Unity3D-相关函数功能
函数功能 1.每隔固定时间执行一次,时间间隔固定(0.02s),时间间隔可以修改. 适用性:适合对物体作移动,旋转等物理操作. 函数执行不受渲染影响. private void FixedUpdate ...
最新文章
- 使用phpStudy运行伊人集项目
- 如何在10分钟内进行可用性测试
- iOSTableview 禁止下拉,允许上拉
- Java 中参数传递是传值还是引用?
- [Beego] [bootstrap-paginator]实现分页功能
- SESSION 回收机制
- 微服务技术栈:API网关中心,落地实现方案
- java代码鸟飞_180行原生js代码实现简易版飞行的小鸟游戏
- Ubunbtu18.04报错:No rule to make target ‘kernel/include/linux/netfilter/xt_CONNMARK.h‘
- 蓝桥杯备战(一)3n+1问题
- Python多线程好玩弹窗代码
- MOSFET知识小结
- 如何进行企业设备管理?
- 苹果描述文件服务器证书无效,iOS 描述文件重新配置失效问题,解决方法!
- uniapp 小程序支付功能
- Xshell “所选的用户密钥未在远程主机上注册,请再试一次”SSH 登录远程linux服务器(良心整理)
- 邮件客户端远程管理邮箱
- Java语言程序设计与数据结构(基础篇)梁勇第九章 *9.3
- linux mfc驱动下载,Ubuntu 安装 Brother MFC7470D 驱动
- 限速牌的单位是什么_限速标志的尺寸是多少