linux 系統函式學習

2021-05-23 10:57:33 字數 925 閱讀 7751

相關函式

raise,signal

表頭檔案

#include

#include

定義函式

int kill(pid_t pid,int sig);

函式說明

kill()可以用來送引數sig指定的訊號給引數pid指定的程序。引數pid有幾種情況:

pid>0 將訊號傳給程序識別碼為pid 的程序。

pid=0 將訊號傳給和目前程序相同程序組的所有程序(需要有傳送的許可權 )

pid=-1 將訊號廣播傳送給系統內所有該程序有許可權 的程序

pid<0 將訊號傳給程序組識別碼為pid絕對值的所有程序

引數sig代表的訊號編號,這裡比較特殊的就是0,如果使用這個,就是為了檢測目的程序是否還在執行

返回值

執行成功則返回0,如果有錯誤則返回-1。

錯誤**

einval 引數sig 不合法

esrch 引數pid 所指定的程序或程序組不存在

eperm 許可權不夠無法傳送訊號給指定程序

sigprocmask

功能描述:設定對訊號遮蔽集內的訊號的處理方式(阻塞或不阻塞)。

用法:#include

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);

引數:how:用於指定訊號修改的方式,可能選擇有三種

sig_block //加入訊號到程序遮蔽。

sig_unblock //從程序遮蔽裡將訊號刪除。

sig_setmask //將set的值設定為新的程序遮蔽。

set:為指向訊號集的指標,在此專指新設的訊號集,如果僅想讀取現在的遮蔽值,可將其置為null。

oldset:也是指向訊號集的指標,在此存放原來的訊號集。

返回說明:

linux 函式學習 kzalloc

include h void kmalloc size t size,int flags static inline void kzalloc size t size,gfp t flags 用kzalloc申請記憶體的時候,效果等同於先是用 kmalloc 申請空間 然後用 memset 來初始化...

Linux庫函式學習

一 檔案io類 1 open close read write基礎開關檔案 讀寫操作。2 lseek函式 在指定的檔案描述符中將檔案指標定位到相應的位置。3 fcntl函式 檔案加鎖 解鎖。4 select poll函式 實現多路io復用。5 fget 從指定的流中讀取資料。二 程序控制類 1 fo...

Linux核心的ioctl函式學習

我這裡說的ioctl函式是在驅動程式裡的,因為我不知道還有沒有別的場合用到了ioctl,所以就規定了我們討論的範圍。為什麼要寫篇文章呢,是因為我前一陣子被ioctl給搞混了,這幾天才弄明白它,於是在這裡清理一下頭腦。一 什麼是ioctl。ioctl是裝置驅動程式中對裝置的i o通道進行管理的函式。所...