UNIX环境高级编程习题——第一章

第一章习题

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

ls  .
ls  ..
ls  /.
ls  /..

这里写图片描述

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

#include "apue.h"
int main(void)
{
    printf("hello world from process ID %ld\n",(long)getpid());
    exit(0);
}

$./a.out
hello world from process ID 851
$./a.out
hello world from process ID 854

(1)在第一次执行./a.out时,有另外的两个进程占用了id为852和853的进程,当./a.out结束以后,852和853也已经结束了,查找不到该进程执行的动作。再次执行,./a.out便占用了854进程。

1.3 在1.7节中,perror的参数是用ISO C的属性const定义的,而strerror的整型参数没有用此属性定义,为什么?
(1)stderror是根据errno值返回相应的出错信息,因此不会将指向错误信息的字符串指针的指向修改,因此stderror的参数不需要const。
(2)而perror接受的参数是字符串指针,就可能存在修改指向错误信息的字符串指针的指向,因此需要const参数限定此行为。

1.4 若日历时间存放在带符号的32位整型数中,那么到哪一年它将溢出?
2^31/(06*60*24*365)=680年

1.5进程时间存放的在带符号的32位整型数中,而且每秒为100时钟滴答,那么经过多少天后这个时间值将会溢出。
2^31/(60*60*24*100)=248天

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值