20145206 《信息安全系統設計基礎》第十二周學習總結
本周學習目標
1、第九周代碼檢查
2、第十周代碼檢查
3、第十一周代碼檢查
博客鏈接
20145206 《信息安全系統設計基礎》第九周學習總結
20145206 《信息安全系統設計基礎》第十周學習總結
20145206 《信息安全系統設計基礎》第十一周學習總結
視頻學習內容總結
指針與聲明
C語言中變量的聲明包括兩個部分:
類型
聲明符
對于簡單類型,聲明并不會對代碼產生多大的閱讀障礙,而對于復雜類型的識別,可以采用右左右左法進行判斷。
指針數組與數組指針
1、指針數組:即用于存儲指針的數組,也就是數組元素都是指針
舉例說明:int *a[10]
表示:數組a中的元素都為int型指針
元素表示:a[i] (a[i])也是一樣的,因為[]優先級高于*
2、數組指針:即指向數組的指針,指針指向一個類型和元素個數都固定的數組
舉例說明:int (*a)[10]
表示:指向數組a的指針
元素表示:(*a)[i]
3、指針函數:即返回值是指針類型的函數
舉例說明:int *comp()
4、函數指針:即指向函數的指針,函數名就是函數指針
舉例說明:int (*comp1)()
右左右左法
具體方法:
從變量名開始,先右再左地,交替地一個一個向外看,在紙上寫下:“變量是”
若向右遇到左圓括號,在紙上寫下:“函數,參數是”,并用同樣的方法處理括號中每一個參數——在紙上寫下:“返回”
若向右遇到方括號,在紙上寫下:“數組,長度為{方括號的內容},元素類型為”
若向右遇到右圓括號,什么也不做
若向左遇到*,在紙上寫下:“指針,指向”
若向左遇到任何類型,在紙上寫下對應的類型名
舉例說明:分析void *(*(*fp1)(int))[10]
從fp1開始——fp1是
向右,遇到右括號,什么也不做
向左,遇到*——指針,指向
向右,遇到左圓括號——函數,參數是int,返回
向左,遇到*——指針,指向
向右,遇到左方括號——數組,長度為10,元素類型為
向左,遇到*——指針,指向
向右,已經到聲明結尾,什么也不做
向左,遇到void——void
結果是:fp1是 指針,指向 函數,參數是int,返回指針,指向數組,長度為10,元素類型為 指針,指向 void
信號處理
信號是Linux系統響應某些條件而產生的一個事件,接收到該信號的進程會執行相應的操作。
信號的產生
由用戶產生,如:Ctrl+C
產生SIGINT信號等,可以通過stty -a
查看哪些按鍵可以產生信號
由硬件產生,如:當前進程執行了除以0的指令
由進程發送,如:可在shell
進程下,使用命令kill -信號標號 PID
,向指定進程發送信號。
由內核產生,如:鬧鐘超時產生SIGALRM
信號。
信號的處理
信號是由操作系統來處理的,說明信號的處理在內核態。信號不一定會立即被處理,此時會儲存在信號的信號表中。
處理過程示意圖:
信號的三種處理方式:
忽略
默認處理方式:操作系統設定的默認處理方式
自定義信號處理方式:可自定義信號處理函數
查看信號信息
1、命令kill -l
每個信號都有一個編號和一個宏定義名稱,宏定義可以在signal.h中找到
2、命令man 7 signal
查看信號的產生條件、默認處理動作
代碼托管
http://git.oschina.net/ZouJR/Linux
代碼行數統計:
本周托管的代碼為這幾次實驗的代碼。
總結
本周主要是復習前幾周的代碼,還進行了視頻的學習,五次實驗已經結束,對五次實驗進行了總結復習,雖然本周沒有課本上新的知識要學習,但是工作量也并不小,本周完成了三篇博客,除了本篇,還有第三周博客問題總結、第五周博客實踐分析
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 0/0 | 1/2 | 20/30 | 學習了一些Linux核心命令 |
第二周 | 250/250 | 1/3 | 20/50 | 學習了vim編輯器基礎 |
第三周 | 280/530 | 1/4 | 18/68 | 熟練在vim里編程并運行 |
第五周 | 300/830 | 1/5 | 15/83 | 學會生成匯編文件并查看 |
第六周 | 200/1030 | 1/6 | 12/95 | 了解Y86指令 |
第七周 | 139/1169 | 1/7 | 10/105 | 了解存儲器層次結構 |
第八周 | 0/1169 | 2/9 | 8/113 | 復習前面所學內容 |
第九周 | 182/1351 | 2/11 | 9/122 | 了解Unix I/O |
第十周 | 502/1853 | 2/13 | 8/130 | 對代碼進行理解 |
第十一周 | 1109/2962 | 3/16 | 10/140 | 對代碼進行理解,學習第八章 |
第十二周 | 258/2962 | 3/19 | 7/147 | 對代碼進行理解 |