linux系統——程序和訊號
阿新 • • 發佈:2019-02-20
一、程序
**
1、啟動新執行緒
**
#include
int system(const char *string);
比如:system(“pa ax &”) , 相當於在shell內呼叫ps sx &(&是後臺執行的意思)
函式返回值:
(1)system返回值:指呼叫system函式後的返回值
(2)shell返回值:指system所呼叫的shell命令的返回值
2、替換程序映像:
把當前程序替換為一個新程序,新的程式啟動後,原來的程式就不在存在了
例如:
3、複製程序映像:
從原程序建立一個完全分離的程序,新程序的許多屬性跟原程序是相同的,新程序幾乎跟原程序一模一樣,但是有自己的資料空間、環境和檔案描述符
4、等待一個程序:
當使用fork()一個程序後,子程序有自己獨立的生命週期,有時候父程序想知道子程序如何結束
5、殭屍程序
子程序終止時,它和父程序之間的聯絡還在,直到父程序也終止或者呼叫wait()函式停止
假如父程序在子程序之前異常終止,此時子程序將交由init超級程序接管,殭屍程序將一直保留在程序表中直到init發現並釋放它,程序表越大,這一過程越慢
6、等待某個特定的程序結束
二、訊號
1、訊號是unix和linux系統相應某些事件而產生的一個訊號,接收到該訊號的程序會採取相應的行動,raise訊號,並catch到訊號
2、處理訊號
:
3、傳送訊號:
4、鬧鐘功能:
可以讓我們實現定期做一些事的情況
5、程式掛起
直到有訊號出現為止
6、健壯的訊號處理函式:
7、遮蔽訊號集sigset_t
const struct sigaction{} 中的遮蔽訊號集sigset_t相關函式: