2
分析图1-6的程序,说明ID位852 853的 进程发生了什么情况
图1.6的程序是
printf("hello world from the process ID %Id\n",(long) getpid());
执行后打印出来的进程号是851 854.但是明明是连续执行的,为什么PID不连续呢?
其实不复杂,就是UNIX在851创建之后到854创建之前又创建了两个进程罢了。
3
顺便复习一下指针常量(const在*的后边)和常量指针(指向常量的指针,const在 * 的左边)
- 指针常量:指针的值不能变,一只能指向初始化的那一块内存空间
- 常量指针:因为是指向常量的指针,所以指向的那一块内存空间是不能更改的
本题perror的参数是一个常量指针,如果不使用常量指针的话,msg就可能被修改。但是strerror的参数是作为拷贝传入的,即使修改也不影响原先的值。
4
2 31 / 60 / 60 / 24 / 365 ≈ 68 2^{31}/60/60/24/365\approx68 231/60/60/24/365≈68 所以说到1970+68=2038年会溢出.最好的方法就是趁早用64位的整形数去替换。