1. 程式人生 > >linux系統——程序和訊號

linux系統——程序和訊號

一、程序

**

1、啟動新執行緒

**
#include
int system(const char *string);
比如:system(“pa ax &”) , 相當於在shell內呼叫ps sx &(&是後臺執行的意思)

函式返回值:
(1)system返回值:指呼叫system函式後的返回值
(2)shell返回值:指system所呼叫的shell命令的返回值

2、替換程序映像:

把當前程序替換為一個新程序,新的程式啟動後,原來的程式就不在存在了
在這裡插入圖片描述
例如:
在這裡插入圖片描述

3、複製程序映像:

從原程序建立一個完全分離的程序,新程序的許多屬性跟原程序是相同的,新程序幾乎跟原程序一模一樣,但是有自己的資料空間、環境和檔案描述符
在這裡插入圖片描述


在這裡插入圖片描述

4、等待一個程序:

當使用fork()一個程序後,子程序有自己獨立的生命週期,有時候父程序想知道子程序如何結束
返回子程序的PID,如果stat_loc不為NULL,則子程序的狀態資訊將寫入該變數
在這裡插入圖片描述

5、殭屍程序

子程序終止時,它和父程序之間的聯絡還在,直到父程序也終止或者呼叫wait()函式停止
假如父程序在子程序之前異常終止,此時子程序將交由init超級程序接管,殭屍程序將一直保留在程序表中直到init發現並釋放它,程序表越大,這一過程越慢

6、等待某個特定的程序結束

在這裡插入圖片描述
在這裡插入圖片描述

二、訊號

1、訊號是unix和linux系統相應某些事件而產生的一個訊號,接收到該訊號的程序會採取相應的行動,raise訊號,並catch到訊號
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

2、處理訊號


在這裡插入圖片描述

3、傳送訊號:

在這裡插入圖片描述

4、鬧鐘功能:

可以讓我們實現定期做一些事的情況
在這裡插入圖片描述

5、程式掛起

直到有訊號出現為止
在這裡插入圖片描述

6、健壯的訊號處理函式:

在這裡插入圖片描述
在這裡插入圖片描述

7、遮蔽訊號集sigset_t

const struct sigaction{} 中的遮蔽訊號集sigset_t相關函式:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

8、sigaction標誌

在這裡插入圖片描述

在這裡插入圖片描述