20145227《資訊保安系統設計基礎》第十二週學習總結
教材學習內容總結
- 本週主要複習了前三週的知識點和程式碼的分析。前三週部落格連結如下:
- 20145227《資訊保安系統設計基礎》第九周學習總結
- 20145227《資訊保安系統設計基礎》第十週學習總結
- 20145227《資訊保安系統設計基礎》第十一週學習總結
程式碼分析中出現的問題與解決彙總
執行testpp.c程式碼時出現段錯誤:
- 解決:問題在於沒給pp分配空間就呼叫了pp[0],畢竟宣告的時候只是一個指標,而指標必須要初始化。有兩種解決辦法:
(1)pp[0] = malloc(20);
修改為pp = malloc(20); pp[0] = malloc(20);
然後即可成功。
(2)把pp[0] = malloc(20);
去掉[0],這樣就分配了20個位元組給了pp這個陣列指標,再編譯執行就ok了。
執行教材P598練習10.1時出錯:
- 解決:
- 缺少csapp.h的標頭檔案,這是書的作者編寫的一個標頭檔案,使用的時候要把此標頭檔案csapp.h和csapp.c檔案包含到你的系統中。先到網上下載這兩個檔案,下載地址(http://download.csdn.net/detail/tzasd89812/4206284);
- 在命令列下輸入
sudo mv csapp.h csapp.c /usr/include
指令將檔案移到/usr/include
中;開啟csapp.h標頭檔案,在#end if
前面加上一句#include <csapp.c>
- 由於csapp.c中包含執行緒的一部分,所以編譯的時候要加上-lpthread選項,否則很多錯誤,此時編譯執行:
- 還是出錯了。按照提示將程式碼中的Open,Close換成了open和close,之後成功執行:
main函式的定義:int main(int argc, char *argv[]){}
argc是用來表示在命令列下輸入命令時的引數個數,包括指令本身;argv[]是用來取得你輸入的引數。
涉及到的標頭檔案的用處:
stdio.h 標準輸入輸出
stdlib.h C標準函式庫
unistd.h Unix類系統定義符號常量
fcntl.h 定義了很多巨集和open,fcntl函式原型
sys/types.h 基本系統資料型別
dirent.h unix類目錄操作的標頭檔案,包含了許多UNIX系統服務的函式原型,例如opendir函式、readdir函式。
termios.h 在Posix規範中定義的標準介面
本週程式碼託管連結
https://git.oschina.net/20145227/IS-Design-20145227/tree/master/ch12
學習進度條
程式碼行數(新增/累積) | 部落格量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 0 | 2/2 | 20/20 | |
第二週 | 100/100 | 1/3 | 20/40 | |
第三週 | 200/300 | 1/4 | 22/62 | |
第五週 | 200/500 | 1/5 | 22/84 | |
第六週 | 274/774 | 1/6 | 22/106 | |
第七週 | 127/901 | 2/8 | 22/128 | |
第八週 | 50/951 | 2/10 | 22/150 | |
第九周 | 418/1369 | 2/12 | 22/172 | |
第十週 | 485/1854 | 2/14 | 22/194 | |
第十一週 | 628/2482 | 3/17 | 32/226 | |
第十二週 | 68/2550 | 2/19 | 32/258 |