下面我們來看一下例子:
/*對於這個例子:
我有幾點要說明:
1.如何看待這個例子???
2.弄懂每一條語句的作用???
3.*/
program source
#include
#include
#include
#include
intmain(int argc, char *argv)
if (cpid == 0) else
if (wifexited(status)) else if (wifsignaled(status)) //測試 是否為真
else if (wifstopped(status)) else if (wifcontinued(status))
} while (!wifexited(status) && !wifsignaled(status));
exit(exit_success);}}
/*我的疑問是:為什麼我們在設計exit()函式的時候,給它定義了引數????
不定義引數不行嗎????
單純的設計exit()用於終止乙個程序不行嗎??? 為什麼還要做乙個多餘的工作???即: 給父程序傳遞乙個引數
exit()函式的引數有什麼用????
是用於告訴
我猜測是這樣的:
linux核心每當終止乙個程序之前,都會把這個程序的一些重要資訊,先儲存在核心中,比如 該程序的父程序的id號,程序的終止原因等。
而這些都是儲存在linux核心當中的。
linux核心預先定義了一些巨集,用於說明該程序的終止原因,這些巨集的本質是一些整型變數,他們被儲存在一段位址空間中,而當某乙個程序呼叫
wait()或者waitpid()函式時,該函式實際是:該函式實際上是與核心溝通的,它告訴linux它想要知道某乙個程序的終止原因,而linux核心則會檢視自己儲存的有沒有它請求的這個程序的相關資訊。
如果有的話,就把核心中表示終止原因的變數的位址告訴wait函式。
*/
UNIX環境高階程式設計學習筆記(一)UNIX基礎知識
1.作業系統可被定義為一種軟體,它控制計算機硬體資源,提供程式執行環境。通常稱為核心 kernel 2.核心的介面被稱為系統呼叫。公共函式庫建在系統呼叫介面之上,應用程式既可使用公共函式庫,也可使用系統呼叫。shell是乙個特殊的應用程式,為執行其他應用程式提供乙個介面.3.unix檔案系統是目錄和...
UNIX學習筆記
2004.8.3 星期二 晴 unix教程一共十四頁,昨天四頁,今天四頁,每一天的進度安排得非常平均。昨天介紹unix的歷史 起源 種類 版本。市面常見的有sun os salaris,ibm ai以及hp。我們介紹以及講解的是sun 2000年推出的os 5.8。今天介紹命令。ls 列出檔案和目錄...
Unix學習筆記
第一章 基礎知識 1.2 unix體系結構 由外到內 應用程式 shell 公共函式庫 系統呼叫 核心 1.3 登入 1.3.1 登入名 口令檔案 etc passwd 口令檔案中的登入項由7個以冒號分隔的字段組成,即 登入名 加密口令 數字使用者id 數字使用者id 注釋字段 起始目錄 shell...