1,在系统上验证,除根目录外,目录.和..是不同的
答:验证指令: 'cd .'和'cd ..',前者代表当前目录,后者代表上级目录;
修正:
1 banxia:~$ ls -ldi /etc/. /etc/.. 2 44826625 drwxr-xr-x 150 root 0 12288 2月 11 06:57 /etc/. 3 2 drwxr-xr-x 28 root 0 4096 2月 4 06:54 /etc/.. 4 banxia:~$ ls -ldi /. /.. 5 2 drwxr-xr-x 28 root 0 4096 2月 4 06:54 /. 6 2 drwxr-xr-x 28 root 0 4096 2月 4 06:54 /..
由上面的命令可知,除了根目录,其它目录的.和..都是指向不同的目录
2,分析下面程序:
1 #include "apue.h" 2 3 int 4 main(void) 5 { 6 printf("hello world from process ID %ld ", (long)getpid() ); 7 exit(0); 8 }
输出是:"hello world from process ID 851"
再执行一遍,输出:"hello world from process ID 854"
请说明进程ID为852和853发生了什么情况?
答:在执行这两次程序的间隙中,系统产生了ID为852和853的其他进程,所以第二次运行进程ID为854。
3,perror的参数是用ISO C的属性const定义的,而strerror的整型参数没有用此属性定义,为什么?
答:perror的参数是一个指针,如果不用const定义,可能perror会意外改变此指针指向的值;strerror的值是一个整型参数,只会传一个形参进strerror函数里,不会改变传进去的整型参数。
4,若日历时间存放在带符号的32位整型数中,那么到哪一年它将溢出?可以用什么方法扩展溢出浮点数?采用的策略是否与现有的应用相兼容?
答:32位带符号整型数范围:-2,147,483,648~2,147,483,648,一年按365天计算,可能计算68.09年,到69年时他将溢出。采用32位无符号整型数扩展,因为都是32位数,且时间没有负数,所以与现有应用兼容。
5,若进程时间存放在带符号的32位整型数中,而且每秒为100时钟滴答,那么经过多少天后,该时间值会溢出?
答:2,147,483,648/100=2,147,483,6.48s=248.55天后会溢出。