日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 信号处理实验,linux下信号处理

發布時間:2025/4/5 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 信号处理实验,linux下信号处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:這一章我們討論一下Linux下的信號處理函數。

Linux下的信號處理函數:

信號的產生

信號的處理

其它信號函數

一個實例

1.信號的產生

Linux下的信號可以類比于DOS下的INT或者是Windows下的事件。在有一個信號發生時候相信的信號就會發送給相應的進程。在Linux下的信號有以下幾個。 我們使用 kill -l 命令可以得到以下的輸出結果:

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL

5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE

9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2

13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD

18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN

22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO

30) SIGPWR

關于這些信號的詳細解釋請查看man 7 signal的輸出結果。 信號事件的發生有兩個來源:一個是硬件的原因(比如我們按下了鍵盤),一個是軟件的原因(比如我們使用系統函數或者是命令發出信號)。 最常用的四個發出信號的系統函數是kill, raise, alarm和setitimer函數。 setitimer函數我們在計時器的使用 那一章再學習。

#include

#include

#include

int kill(pid_t pid,int sig);

int raise(int sig);

unisigned int alarm(unsigned int seconds);

kill系統調用負責向進程發送信號sig。

如果pid是正數,那么向信號sig被發送到進程pid。

如果pid等于0,那么信號sig被發送到所以和pid進程在同一個進程組的進程

如果pid等于-1,那么信號發給所有的進程表中的進程,除了最大的哪個進程號。

如果pid由于-1,和0一樣,只是發送進程組是-pid。

我們用最多的是第一個情況。還記得我們在守護進程那一節的例子嗎?我們那個時候用這個函數殺死了父進程守護進程的創建

raise系統調用向自己發送一個sig信號。我們可以用上面那個函數來實現這個功能的。

alarm函數和時間有點關系了,這個函數可以在seconds秒后向自己發送一個SIGALRM信號。 下面這個函數會有什么結果呢?

#includ

總結

以上是生活随笔為你收集整理的linux 信号处理实验,linux下信号处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。