Linux程式設計 程序和訊號

2021-08-03 14:52:03 字數 1206 閱讀 8670

程序的結構、型別和排程

可以把程序看做是正在執行的程式。

程序結構:程序識別符號、檔案描述符、棧空間和環境變數(程式計數器)

作業系統通過程序的

pid對它們進行管理,

pid是程序表的索引。

linux

排程器根據

程序的優先順序

來決定呼叫哪個程序。

用不同的方法啟動新程序

system

函式作用:執行以字串引數的形式傳遞給它的命令並等待命令的完成。它很有用,但是也有侷限性,程式必須

等待由system

函式啟動的程序結束之後才能繼續

,因此我們不能立刻執行其它任務。

exec函式比

system

函式更有效,因為在

新的程式啟動後,原來的程式就不再執行

了。exec

啟動的新程序繼承了原來程序的許多特性,新程序的

pid、

ppid

與原來的一樣。

父程序、子程序和殭屍程序

讓程序同時執行多個函式,可以通過

fork

建立乙個新程序,新程序與原程序一模一樣,執行**也完全相同,但新程序有自己的資料空間、環境和檔案描述符。

父程序中的

fork

呼叫返回的是新的子程序的

pid,而子程序中的

fork

呼叫返回的是0

函式通過

fork

建立的子程序終止時,它與父程序之間的關聯還會繼續保持

,直到父程序也正常終止或父程序呼叫

wait

才可結束,因此,程序表中代表子程序的表項不會立刻釋放,雖然

子程序不再執行,但是它仍存在於系統中

,這個時候它就是乙個死程序或

殭屍程序(

zombie

),如果父程序異常終止,那麼子程序會自動把

pid為

1的程序(

init

)作為自己的父程序,並一直儲存在程序表中,直到被

init

發現並釋放。

什麼是訊號以及如何使用它們訊號是

unix

和linux

系統響應某些條件而產生的某乙個事件。

訊號可以被生成、捕獲、響應和忽略。

sig:準備捕獲或忽略的訊號

func

:接收到指定訊號後將要呼叫的函式

Linux程式設計 程序 訊號

半年不接觸linux,有些東西變的太陌生了,再回顧一下我的linux 基礎 程式設計吧 程序 1.得到程序資訊的常用函式 include include pid t getpid void 程序id pid t getppid void 父程序id uid t getuid void 程序所有者的i...

Linux 程序和訊號

1.程序識別符號 pid 的取值範圍從2到32768,數字1是為特殊程序init保留的,init程序負責管理其他程序。2.linux程序表就像乙個資料結構,它把當前載入在記憶體中的所有程序的相關資訊儲存在乙個表中,pid是程序表的索引。3.ps af tty一列顯示了程序是從哪乙個終端啟動的。cmd...

Linux 程序和訊號

pid 定義 程序識別符號 linux和unix一樣,有乙個虛擬記憶體系統,能夠把程式 和資料以記憶體頁面的形式放到硬碟的乙個區域中,所以linux可以管理的程序比物理記憶體所能容納的要多得多。程序表 linux程序表就像乙個資料結構,它把當前載入在記憶體中的所有程序的有關資訊儲存在乙個表中,其中包...