apue《UNIX环境高级编程第三版》第一章答案详解

《Unix环境高级编程》课后习题(1-6章) 今天有时间来做一下课后习题,下面的答案是自己的理解,有一些也参考的网上的解答,并不保证正确性。第一章 ls命令查看文件信息,-l选项以长格式的形式查看文件详细信息,-i选项打印文件的i结点编号,-d选项,表示如果文件是目录文件,则只列出该目录本身的信息,不列出该目录内文件的信息,如果文件是符号链接,则打印该链接本身的信息,不打印所指向文件的信息。在Ubuntu上进行验证:       Uni 阅读详情

     大家好,从这周开始学习apue《UNIX环境高级编程第三版》,在此,我要感谢网易的一个工程师朋友和室友,没有他们,我不会开始真正的学习这本书,希望大家以后开始慢慢进步。废话少说,直接上课后习题了。

UNIX高级编程第一章习题答案:

1.1在系统上验证,除根目录外,目录l和l l是不同的。

答:这个验证有很多方法可使用命令ls 、cd、vim等,目录.指向当前目录,目录..指向父目录,在根目录中这两个是相同的。首先是根目录


可见在根目录下,目录.和目录..都是指向本目录的。


结果显然易见。有兴趣可以使用vim .与vim..

1.2分析图1-6程序的输出,说明进程ID为852和853的进程发生了什么情况?

答:UNIX是多任务系统,在程序运行的同时其他两个进程也在运行,编程运行如下图所示


由上图可见进程PID是一直增大的,小水试图使用lsof  -p 15122去查询中间的那个进程,可是一无所获,因此可以判定这个进程在小水试图去抓它的时候已经结束了。为什么进程的PID一直在增大,会增大到什么程度?

1.3在1.7节中,perror的参数是用ISO C的属性const定义的,而strerror的整形参数没有用此属性定义,为什么?

答:因为perror的msg参数是个指针,perror就可以改变msg指向的字符串。然而使用限定符const限制了perror不能修改msg指针指向的字符串。而对于strerror,其错误号参数是整数类型,并且C是按值传递所有参数,因此即使strerror函数想修改参数的值也修改不了,也就没有必要使用const属性。

以我的理解是这样的:可以从两个函数的定义去理解

char  *strerror(int errnum);

void   perror(const char *msg);

strerror函数将errnum (通常就是errno值)映射为一个出错消息字符串,并返回此字符串的指针,而errno的值通常是不定的(可参考errno的规则),存在多种不同的errno,当然不能使用cons修饰符了。

     而perror的作用基于error当前值,在标准错误上产生一条错误信息,首先msg它是指向error的,不能指向其他地方,不管当前error是何值,其内容是固定的,因此需要使用const。它首先输出msg所指向的字符串,然后是一个冒号,一个空格,接着是对应的errno值,最后换行符。

1.4若日历存放在带符号的32位整形数中,那么哪一年它将溢出?可用什么方法扩展溢出的浮点数,采用的策略是否与现有的应用相兼容?

答:首先确定起始时间为 T=1970年1月1日 00:00:00,然后是带符号的32位所存储的时间t=231/(60*60*24*365)=68.0962598年,所以溢出时间为T+t=1970+68=2038年。其溢出解决办法是将time_t数据类型定义为64位整形。

1.5若进程时间存放在带符号的32位整形中,而且每秒100滴答,经过多少天后该数溢出?

答:t=231/(60*60*24*100)=248.551348天。

最后送上格言:学习不能固步自封。。。(如有错误的地方请指正)



UNIX环境高级编程课后习题详细解答 Unix环境高级编程 详细课后习题解答 内容高清 详细可参考unix环境高级编程来看 立即下载

相关推荐

UNIX环境高级编程第三版中英文两版+头文件+习题+源码.rar

LINUX的圣经,找个资源不容易,这里把英文版,中文文字版,ourhdr.h myerror.c以及课后习题都打包分享给大家

《UNIX环境高级编程 第3版》习题3.2的个人解答

题目: 编写一个与3.12节中dup2功能相同的函数,要求不调用fcntl函数,并且要有正确的出错处理。 以下是我编写的测试代码,其中apue.h是《UNIX环境高级编程 第3版》作者自己整理的头文件,其中包含了常用的一些系统头文件,err_sys的声明和定义在书中的附录B中均有提及。 代码的编写,也是尽量模范该书作者的风格来着。 #include "apue.h" #include #

u011418173的博客 759

UNIX环境高级编程课后习题详细解答.pdf

UNIX环境高级编程课后习题详细解答.pdf

《UNIX环境高级编程》(第三版第一章)

21./dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。 15./*errno可以是一个包含出错编号的整数,也可以是一个返回出错编号指针的函数。在支持多线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部errno以避免一个线程干扰另一个线程。*/ extern int errno; extern int *__errno_location(void); #define errno (*__errno_loc

ZeroCBoy的博客 1097

UNIX环境高级编程第3版

UNIX环境高级编程第3版 封面 目录 扉页 版权 版权声明 译者序 第2版序 前言 第1章 UNIX基础知识 1.1 引言 1.2 UNIX体系结构 1.3 登录 1.4 文件和目录 1.5 输入和输出 1.6 程序和进程 1.7 出错处理 1.8 用户标识 1.9 信号 1.10 时间值 1.11 系统调用和库函数 1.12 小结 ..... .....

《UNIX编程环境》习题及部分参考答案

《UNIX编程环境》习题及部分参考答案《UNIX编程环境》习题及部分参考答案《UNIX编程环境》习题及部分参考答案

Unix环境高级编程 第三章习题答案

注,本人初涉linux,阅历有限,代码中固然会有许多弊端,请各位判官 批判 地看。还有,不能保证完全正确,希望大家共同进步,告诉小弟多点编程小技巧,不胜感谢。3.2编写一个于dup2()功能相同的函数,但不实用fcntl().上网搜了一下,竟然搜到同实验室的大牛的代码,基于他的基础,我再写了个。当然不能做到的是原子性,另外知道有一个ioctl,现在还没学到深入,到时再看看用这个函数能不能做。这种实

.简简单单.; 3498

eDP接口信号组成认识

eDP接口信号主要由Main Link、AUXCH与HPD三部分组成,如下图所示。 Main Link:表示主通道,用来传输各类型视频数据和音频数据; AUX CH:表示辅助通道,用于传输低带宽需求的数据,以及链路管理和设备控制信号; HPD:表示热插拔检测通道。 Main Link南1~4对数据线组成,每对数据线都是一对差分线。对于一款液晶屏而言,Main Link具体需几对数据线,这取决于屏幕的分辨率和彩色位数。 在该通道中传送的信号有视频像素信号、视频定时信号、视频格式信号、比特/像素及

精诚所至 2万+

【转】apue《UNIX环境高级编程第三版》第一章答案详解

原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue《UNIX环境高级编程第三版》,在此,我要感谢网易的一个工程师朋友和室友,没有他们,我不会开始真正的学习这本书,希望大家以后开始慢慢进步。废话少说,直接上课后习题了。 UNIX高级编程第一章习题答案: 1.1在系统上验证,除根目录外,目录l和...

weixin_30608503的博客 177

Linux中断子系统分析之(四):驱动程序申请中断

中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放置在Top-half中来处理,而将耗时的工作放置在Bottom-half中来处理。 如果中断不分上下半部处理,那么意味着只有等上一个中断完成处理后才会打开中断,下一个中断才能得到响应。当某个中断处理处理时间较长时,很有可能就会造成其他中断丢失而无法响应,影响系统性能。 中断分成上下半部处理可以提高中断的响应能力,在上半部处理完成后便将中断打开,这样就可以响应其他中断了,等到中断退出的时候再进行下半部的处理。为了进

m0_46525308的博客 1229

车载导航测试,面试常见问题

车载导航测试是汽车软件测试的重要组成部分,涉及验证导航系统的功能、性能、可靠性和用户体验。在面试中,面试官通常会考察候选人的测试思维、问题解决能力和实际经验。以下我将从常见问题类别入手,逐步介绍面试中的高频问题,并提供结构化分析。通过以上结构化准备,你能在面试中自信应对车载导航测试相关问题。用户体验测试关注界面友好性和交互流畅性,安全测试则涉及功能安全和数据隐私。功能测试聚焦于导航核心功能的正确性,如路线规划、位置定位和地图显示。面试官会考察你如何识别、报告和跟踪缺陷,以及熟悉测试工具。

m0_69889939的博客 528

apue《UNIX环境高级编程第三版》第二章答案详解

转载请标明本博客地址 UNIX高级编程第二章习题答案:

hubbybob1专栏 2732

RWEQ土壤风蚀模型的估算与变化归因分析

本次以介绍RWEQ模型的基本原理及数据需求,再结合案例讲解RWEQ模型中区域地理空间数据库构建的方法和各个参量提取的原理与方法,最后结合典型案例进行综合讲解风蚀模数估算、制图及归因分析。空间分析与制图:提取分析、局部分析、邻域分析、区域分析、插值分析、平滑处理、像元提取、采样与重采样。以某实际应用为案例,掌握RWEQ模型进行当地土壤风蚀量空间分布分析整体流程。地图服务器、在线地图、范围指示器、格网、表格、基础地图服务使用规则介绍。掌握土壤风蚀模型的原理、优势点及因子组成。

2301_77413856的博客 1194

探索APUE:深入理解和实践Unix环境编程

探索APUE:深入理解和实践Unix环境编程 是一个开源的项目,旨在为开发者提供对Unix环境编程的全面指南和实用代码示例。该项目由VVictorQi维护,它基于著名的书籍《Advanced Programming in the UNIX Environment》(APUE)进行编译整理,将书中的理论知识与实际代码相结合,帮助程序员在实践中提升技能。 项目简介 APUE项目不仅包含了原书中的丰富内...

gitblog_00057的博客 553

【知识点总结】电路原理 第一讲

大家好,从今天起,我将开始更新自上大学以来所学到的各种知识,之所以选择更新它们是因为最近我一直在收拾整理自己自上大学以来所收获到的各种知识,看着那厚厚一沓的书本心里不由得犯愁。如果我想找到特定的知识,那岂不是得翻到猴年马月。俗话说得好,下雨天打鞋子,闲着也是闲着,为此我设置一个专栏,将知识点一一分类总结,目的在于更好的整理所学的知识。本人学艺不精,有一些知识点地方可能存在瑕疵,希望各位大佬可以多多指教。以下是本篇文章正文内容虚断:一般通用性运算放大器的正反向输入端之间的电阻非常非常的大。

weixin_51130221的博客 4万+

数据标注工具:AiLabel.js实现标注 超详细教程 案例分享

背景:在前端开发过程中难免遇到针对图片的缩放平移;以及在图片上进行矢量数据、文本、标注的展示;如果你有上面的任何需求,恭喜你,找到组织了.... 在此背景下,AILabel.js出生了。 前面文章我们已经介绍过AiLabel.js了; https://blog.csdn.net/u012967771/article/details/113148527 npm下载地址:https://www.npmjs.com/package/ailabel github地址:https://github.com/d.

前端互助会 9365

apue.h头文件(Unix环境高级编程第三版)的安装

配置apue.h头文件的时候,作为Linux初学者,网上的答案都是不太适用,问题百出,弄了好久总算完成! 注意我使用的是Fedora26,方法同样适用于CentOS和Ubuntu 1、下载源码文件 进入www.apuebook.com/code3e.html 单击here进行下载 2、保存 3、tar解压 解压:$ tar -zxv -f fi

Spade_的博客 2万+

【WRF-Chem工具】pyVPRM 计算大气与陆地植被之间的 CO₂ 交换通量

pyVPRM 计算大气与陆地植被之间的 CO₂ 交换通量

WW、forever的博客 210

《Linux程序设计》 -> 《Linux高级程序设计》 -> 《Unix环境高级编程》

这是csdn linux版主写的: 《Linux程序设计》->《Linux高级程序设计》-《Unix环境高级编程》     可以说这个顺序代表了一般Linux程序猿的学习道路,《Linux程序设计》内容全面,易于入手,适用于新手详细了解Linux下编程,《Linux高级程序设计》则相当于在前一本的基础上进行了高度抽象和概括,介绍了Linux下工具链,可移植性,内核学习,图形编程等等

wusuopuBUPT的专栏 4240

基于深度学习的堰塞坝表层颗粒物质识别研究

本文提出一种基于深度学习的堰塞坝表层颗粒物质智能识别方法,针对颗粒分布散乱、背景复杂的问题,采用"大颗粒逐个识别、密集小颗粒分块识别"策略。结合Mask R-CNN、SLIC和AlexNet构建识别模型,通过无人机影像实现自动识别。实验表明该方法精度超过90%,具备迁移能力。文章提供了Python实现代码,涵盖数据预处理、SLIC分割、模型构建(Mask R-CNN和AlexNet)及训练流程,为堰塞坝应急抢险提供技术支持。

huanghm88的专栏 181

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[apue]UNIX高级环境编程ver3勘误表[持续更新]

本文记录在阅读《UNIX环境高级编程》第三版过程中发现的错误,写这篇文章时阅读到第三章文件I/0. 本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版风格的基础上,根据最新的标准对内容进行

尘世中迷途小书童 600

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

unix环境高级编程第三章习题的一些拙见

apu第三章习题

算法虐我千百遍 1115

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

OS X下UNIX环境高级编程(第三版)学习日志-第一章ChapterI,编译apue包与第一个例程...

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33898876的博客 140

unix编程学习路线图

http://hi.baidu.com/tkblue/blog/item/98aef5cade45fb42f21fe795.html 建议学习路径:   首先先学学编辑器,vim, emacs什么的都行。 然后学make file文件,只要知道一点就行,这样就可以准备编程序了。   然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。

yake25的专栏 2609

学习linux/unix编程方法的建议,学习Linux的四个步骤

862
下一篇: fork与vfork浅析
葫芦娃二娃
博客等级 码龄15年 1850粉丝 69原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值