Linux程序設計 筆記——第一章入門
1、Unix的哲學
簡單性:Keep It Small and Simple。越大、越復雜的系統註定包含越大、越復雜的錯誤,而調試是所有人的苦差事。
集中性:不要把所有亂七八糟的功能堆在一起,功能臃腫的程序很那維護和使用。當用戶出現新的需求的時候,我們通常是把小工具組合起來已完成更復雜的任務。
可重用組件:將應用程序的核心封裝成庫,便於調用。
過濾器:Unix提供了一些機制,讓我們可以把一些Unix程序通過一種新穎的方式組合起來,以開發出相當復雜的程序。
開放的文件格式:比較成功並流行的Unix程序都是用純ASCII碼的文本文檔或者XML文件作為配置文件和數據文件。
靈活性:你不能期待用戶都能非常正確地使用你的程序。永遠不要認為你知道用戶想做的一切事。
2、Linux程序設計
Linux的應用程序有兩種類型:可執行文件和腳本文件。可執行文件是計算機可以直接運行的文件,就像Windows下面的.exe文件一下;腳本文件通常是一組指令的集合,這些指令有解釋器執行,按照腳本的順序指令執行,比如shell文件。
Linux並不要求這兩種類型的文件有特殊的文件名或者後綴名,但最好加上來區別,像shell文件的後綴為.sh、Python的後綴為.py等等。
3、Linux下與程序設計有關的目錄
/bin:二進制文件目錄,存放啟動系統時用到的程序。
/usr/bin:用戶二進制文件目錄,用於存放用戶使用的標準程序。
/usr/local/bin:本地二進制文件目錄,用於存放軟件安裝的程序。
4、文本編輯器
書中推薦使用的編輯器是Emacs,而我本人使用的是vim,不做任何說話,避免開戰。
編譯器使用的gcc。
5、第一個Linux C語言程序
#include <stdio.h> #include <stdlib.h> int main() { printf("hello world\n"); exit(0); }
編譯、鏈接和運行程序
$ gcc -o hello hello.c //-o name 告訴編譯器可執行文件的名稱,不加默認生成a.out(assembler output)
$ ./hello
hello world
6、開發系統引導
對C語言來說,頭文件幾乎總是位於/usr/include目錄及其子目錄中。那些依賴於特定Linux版本的頭文件通常可以在目錄/usr/include/sys和/usr/include/linux中找到。
在調試c語言的時候,可以使用-I(大寫)標誌來包含保存在子目錄或非標準位置中的頭文件。例如:
$ gcc -I /usr/openwin/include fred.c
編譯器會在此目錄下查找源文件中包含的頭文件。
Linux程序設計 筆記——第一章入門