《Linux系統呼叫 kill,killpg》

2021-10-01 19:42:13 字數 695 閱讀 3981

乙個程序能夠使用kill()向另外乙個程序傳送訊號,接收訊號程序和傳送訊號程序的所有者必須相同,或者傳送訊號程序的所有者是超級使用者。

如果程序無權傳送訊號給所請求的pid,那麼kill呼叫失敗,並設定errno為eperm,

若pid所指為一系列程序時,只要可以向其中之一傳送訊號,則kill呼叫成功。

killpg()向某一程序組的所有成員傳送乙個訊號。

#include #include int kill(pid_t pid, int signum);

引數: pid: 取值有 4 種情況:

pid > 0: 將訊號傳送給程序 id 為pid的程序。

pid = 0: 將訊號傳送給當前程序所在程序組中的所有程序。

pid = -1: 將訊號傳送給系統內所有的程序。

pid < -1: 將訊號傳給指定程序組的所有程序。這個程序組號等於 pid 的絕對值。

signum:

訊號的編號,這裡可以填數字編號,也可以填訊號的巨集定義,可以通過命令 kill -l ("l" 為字母)進行相應檢視。

返回值:

成功返回0,錯誤-1設定errno

//相當於呼叫 kill(-pgrp,sig)

i

linux 系統呼叫

使用者應用可以通過兩種方式使用系統呼叫。第一種方式是通過c庫函式,包括系統呼叫在c庫中的封裝函式和其他普通函式。圖5.2 使用系統呼叫的兩種方式 第二種方式是使用 syscall巨集。2.6.18版本之前的核心,在include asm i386 unistd.h檔案中定義有7個 syscall巨集...

Linux系統呼叫

一 實驗目的和要求 1.學習linux核心的配置和編譯 2.深入理解linux系統呼叫 3.理解arm和x86的cpu模式 系統模式 使用者模式 的不同 4.掌握核心模組的編寫方法。二 實驗器材 1.linux實驗板卡一塊 2.5v 1a電源乙個 3.microusb線一根 4.macos一台 5....

Linux系統呼叫

linux系統呼叫 系統呼叫 system call 是使用者空間訪問核心的唯一手段,除異常和陷入外,他們是核心唯一的合法入口。通常情況下應用程式是通過應用程式設計介面api來訪問函式,而不是直接使用系統呼叫來程式設計。作業系統通常是通過中斷從使用者態切換到核心態。中斷就是乙個硬體或軟體請求,要求c...