20145210《信息安全系統設計基礎》第12周學習總結

20145210《信息安全系統設計基礎》第12周學習總結

教材學習內容總結

第九周學習總結
第十週學習總結
第十一週學習總結html

視頻學習內容總結

指針與聲明

·C語言中變量的聲明包括兩個部分:類型,聲明符
·對於簡單類型,聲明並不會對代碼產生多大的閱讀障礙,而對於複雜類型的識別,能夠採用右左右左法進行判斷linux

指針數組與數組指針

·指針數組:即用於存儲指針的數組,也就是數組元素都是指針int a[10]
·數組指針:即指向駐足的指針,指針指向一個類型和元素個數都固定的數組int (a)[10]
·指針函數:即返回值是指針類型的函數int fuk()
·函數指針:即指向函數的指針,函數名就是函數指針int (fuk1)()
對於簡單類型,聲明並不會對代碼產生多大的閱讀障礙,而對於複雜類型的識別,能夠採用右左右左法進行判斷git

右左右左法

從變量名開始,先右再左地,交替地一個一個向外看,在紙上寫下:「變量是」
若向右遇到左圓括號,在紙上寫下:「函數,參數是」,並用一樣的方法處理括號中每個參數——在紙上寫下:「返回」
若向右遇到方括號,在紙上寫下:「數組,長度爲{方括號的內容},元素類型爲」
若向右遇到右圓括號,什麼也不作
若向左遇到*,在紙上寫下:「指針,指向」
若向左遇到任何類型,在紙上寫下對應的類型名shell

信號的產生

·由用戶產生,如:Ctrl+C產生SIGINT信號等,能夠經過stty -a查看哪些按鍵能夠產生信號
·由硬件產生,如:當前進程執行了除以0的指令
·由進程發送,如:可在shell進程下,使用命令 kill -信號標號 PID,向指定進程發送信號。
·由內核產生,如:鬧鐘超時產生SIGALRM信號。
SIG_IGN是忽略信號的處理程序,表示無返回值的函數指針,指針值爲1
SIG_DFL是默認信號的處理程序,表示無返回值的函數指針,指針值爲0
能夠經過stty -a查看能夠產生信號的按鍵組合:
數組

signal與sigaction

·signal:
·不知道信號被髮送的緣由
·信號處理過程當中不能安全地阻塞其餘信號
·sigaction:
·在信號處理程序被調用時,系統創建的新信號屏蔽字會自動包括正被遞送的信號。所以保證了在處理一個給定的信號時,若是這種信號再次發生,那麼它會被阻塞到對前一個信號的處理結束爲止
·響應函數設置後就一直有效,不會重置安全

信號的處理

·信號是由操做系統來處理的,說明信號的處理在內核態。信號不必定會當即被處理,此時會儲存在信號的信號表中。
·信號的三種處理方式:函數

·忽略
·默認處理方式:操做系統設定的默認處理方式
·自定義信號處理方式:可自定義信號處理函數

捕捉信號

利用命令man -k signal進行檢索相關函數:
學習

sigdemo1.c運行結果以下圖所示:
操作系統

signal(SIGINT,f)演示瞭如何捕捉信號,這個程序捕捉了中斷信號
void f(int signum)演示瞭如何定義信號處理函數.net

忽略信號

·sigdemo2.c運行結果以下圖所示:

·經過grep命令查看SIG_IGN,表示無返回值的函數指針,指針值爲1

默認操做

·SIG_DFL是默認信號的處理程序
·經過grep命令查看SIG_DFL,表示無返回值的函數指針,指針值爲0

·sigdemo3.c運行結果以下圖所示:

將sigdemo2.c中的SIG_IGN改爲SIG_DFL,運行sigdemo4.c:

SIG_IGN是忽略信號,也就是當鍵盤輸入一個Ctrl+C中斷指令時,程序會將其忽略,而改爲SIG_DFL後,恢復成了默認的狀態,輸入中斷指令後,天然程序也就中斷了

代碼託管

代碼鏈接

代碼行數統計:

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積)
目標 5000行 30篇 400小時
第零周 0/0 1/1 10/10
第一週 100/100 1/2 20/20
第二週 120/220 1/3 35/55
第三週 226/446 1/4 30/85
第五週 141/587 1/5 30/115
第六週 150/737 1/6 25/140
第七週 100/837 1/7 20/160
第八週 0/837 2/9 30/190
第九周 183/1020 2/11 20/210
第十週 521/1541 3/14 20/230
第十一週 426/1967 1/15 35/265
第十二週 41/2008 3/18 50/315
相關文章
相關標籤/搜索