UNIX環境高級編程習題——第一章

第一章習題

1.1在系統上驗證,除了根目錄外,目錄.和..是不一樣的spa

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進程。code

1.3 在1.7節中,perror的參數是用ISO C的屬性const定義的,而strerror的整型參數沒有用此屬性定義,爲何?
(1)stderror是根據errno值返回相應的出錯信息,所以不會將指向錯誤信息的字符串指針的指向修改,所以stderror的參數不須要const。
(2)而perror接受的參數是字符串指針,就可能存在修改指向錯誤信息的字符串指針的指向,所以須要const參數限定此行爲。進程

1.4 若日曆時間存放在帶符號的32位整型數中,那麼到哪一年它將溢出?圖片

2^31/(6*60*24*365)=680年

1.5 進程時間存放的在帶符號的32位整型數中,並且每秒爲100時鐘滴答,那麼通過多少天后這個時間值將會溢出。字符串

2^31/(60*60*24*100)=248天
相關文章
相關標籤/搜索