1. 程式人生 > >Linux程式設計 筆記——第一章入門

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

  編譯器會在此目錄下查詢原始檔中包含的標頭檔案。