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