20145309信息安全系统设计基础第12周学习总结后篇
指針與聲明
-
聲明
1、C語言中變量的聲明
類型(type) 聲明符(declarator)2、最簡單的聲明是變量
3、指針數(shù)組
- 指針數(shù)組是一個數(shù)組
- 數(shù)組里的元素都是指針
- 例:int *daytab[13]
4、數(shù)組指針
- 數(shù)組指針是一個指針
- 指針指向一個類型和元素個數(shù)都固定的數(shù)組
- 例:int (*daytab1)[13]
5、指針函數(shù)
- 指針函數(shù)是函數(shù)
- 函數(shù)的返回值是指針類型
- 例:int *comp()
6、函數(shù)指針
- 函數(shù)指針是指針
- 指針指向函數(shù)
- 函數(shù)名就是函數(shù)指針
- 例:int (*comp1)()
7、類型識別法:右左右左法
從變量名開始,先右再左地,交替地一個一個向外看,在紙上寫下:“變量是” 若向右遇到左圓括號,在紙上寫下:“函數(shù),參數(shù)是”,并用同樣的方法處理括號中每一個參數(shù)——在紙上寫下:“返回” 若向右遇到方括號,在紙上寫下:“數(shù)組,長度為{方括號的內(nèi)容},元素類型為” 若向右遇到右圓括號,什么也不做 若向左遇到*,在紙上寫下:“指針,指向” 若向左遇到任何類型,在紙上寫下對應(yīng)的類型名8、自定義類型:typedef
9、char ((x())[])()
分析:x是函數(shù),無參數(shù),返回指針,指向數(shù)組,長度不確定,元素類型為指針,指向函數(shù),無參數(shù),返回void
10、char ((x[3])())[5]
分析:x是數(shù)組,長度為3,元素類型為指針,指向函數(shù),無參數(shù),返回指針,指向數(shù)組,長度為5,元素類型為char
信號處理
-
信號
1、信號是UNIX中使用的進(jìn)程通信的一種最古老的方法
2、信號是在軟件層次上對中斷機(jī)制的一種模擬,它是比較復(fù)雜的通信方式,用于通知進(jìn)程有某事件發(fā)生,一個進(jìn)程收到一個信號與處理器收到一個中斷請求效果上可以說是一樣的
-
查看信號信息
1、命令kill -l
每個信號都有一個編號和一個宏定義名稱,宏定義可以在signal.h中找到
2、命令man 7 signal
查看信號的產(chǎn)生條件、默認(rèn)處理動作
-
信號生命周期:信號產(chǎn)生、信號注冊、信號注銷、信號處理
1、信號產(chǎn)生
- 用戶產(chǎn)生
例:在終端中按下Ctrl+C產(chǎn)生SIGINT信號,可以通過stty -a查看可以產(chǎn)生信號的按鍵組合
- 硬件產(chǎn)生
硬件異常產(chǎn)生信號,例:當(dāng)前進(jìn)程執(zhí)行了除以0的指令
- 進(jìn)程產(chǎn)生
例:可在shell進(jìn)程下,使用命令 kill -信號標(biāo)號 PID,向指定進(jìn)程發(fā)送信號。
- 內(nèi)核產(chǎn)生
例:鬧鐘超時產(chǎn)生SIGALRM信號
2、信號處理
- 捕捉信號
命令:man -k signal可以檢索相關(guān)函數(shù),通過man 2 signal可以查看signal的幫助文檔
signal(SIGINT,f)演示了如何捕捉信號,這個程序捕捉了中斷信號
void f(int signum)演示了如何定義信號處理函數(shù)
- 忽略信號
- 默認(rèn)操作
默認(rèn)信號:SIG_DFL是默認(rèn)信號的處理程序
通過grep命令查看SIG_DFL,表示無返回值的函數(shù)指針,指針值為0
把SIG_IGN改成SIG_DFL
- 多信號處理
-
signal與sigaction
1、signal:
不知道信號被發(fā)送的原因 信號處理過程中不能安全地阻塞其他信號2、sigaction:
在信號處理程序被調(diào)用時,系統(tǒng)建立的新信號屏蔽字會自動包括正被遞送的信號。因此保證了在處理一個給定的信號時,如果這種信號再次發(fā)生,那么它會被阻塞到對前一個信號的處理結(jié)束為止
響應(yīng)函數(shù)設(shè)置后就一直有效,不會重置
轉(zhuǎn)載于:https://www.cnblogs.com/zym0728/p/6132240.html
總結(jié)
以上是生活随笔為你收集整理的20145309信息安全系统设计基础第12周学习总结后篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一行命令创建 http-server
- 下一篇: 20145225 《信息安全系统设计基础