- 目录.和目录..的不同
- 一个程序启动两次,进程id变化了
- 在1.7节中,perror的参数是用ISO C的属性const定义的,而strerror的整型参数没有用此属性定义,为什么
- 若日历时间存放在代符号的32位整型数中,那么到哪一年它将溢出? 可以用什么方法扩展溢出浮点数?采用什么策略与现有应用兼容?
- 若进程时间存放在带符号的32位整形中,而且每秒100滴答,经过多少天后该数溢出?
## 第一章习题
目录.和目录..的不同
在根目录/
下,.
和..
都是根目录,在其他目录,.
是该目录,..
是该目录的上一级目录
一个程序启动两次,进程id变化了
系统维护一个进程id的表,分配和回收进程id
在1.7节中,perror的参数是用ISO C的属性const定义的,而strerror的整型参数没有用此属性定义,为什么
#include <string.h>
char * strerror(int errnum)
#include <stdio.h>
void perror(const char *msg)
- strerror是根据errnum(int类型)返回相应的出错信息,因此不会将指向错误信息的字符串指针的指向修改,因此strerror的参数不需要const
- perror接受的参数是字符串指针,就可能存在修改指向错误信息的字符串指针的指向,因此需要const声明限定此行为
若日历时间存放在代符号的32位整型数中,那么到哪一年它将溢出? 可以用什么方法扩展溢出浮点数?采用什么策略与现有应用兼容?
- 起始时间
1970-01-01 00:00:00
,带符号的32位最大时间231/(60*60*24*365) second = 68.0962598 year
,溢出时间 1970 + 68 = 2038 - 溢出解决办法: 将time_t数据类型定义为无符号32位int 或 有符号64位int
若进程时间存放在带符号的32位整形中,而且每秒100滴答,经过多少天后该数溢出?
- 231/(606024*100)=248.551348 day