c 語言看的差不多了,linux程式設計從**入手呢?
首先我們要了解一些基本的知識,比如庫檔案,shell程式設計。
靜態庫檔案:*.a
缺點:同一時間執行多個程式而它們又來自同乙個函式庫裡的函式時,記憶體中就會存在同一函式的多份
拷貝,在程式文字中也存在多份拷貝,浪費記憶體和硬碟
建立乙個自己的靜態庫檔案:
1).函式bill.c
/* code */
#include
void bill(char * arg)
/* code */
編譯:$ gcc -c bill.c 生成bill.o檔案
2).為函式建立標頭檔案lib.h
/* code */
void bill(char *)
/* code */
3).寫個程式program.c呼叫剛才的函式:
/* code */
#include "lib.h"
int main()
/* code */
編譯: $ gcc -c program.c
$ gcc -o program program.c bill.o
$ ./program
4).用ar程式建立乙個檔案:
$ ar crv libfoo.a bill.o
為函式庫建立乙個內容表(在berkley unix中,在linux中並不必要):
$ ranlib libfoo.a
現在我們就可以用函式庫了:
$ gcc -o program program.c libfoo.a
也可以通過-l來告訴編譯器**能夠找到它:
$ gcc -o program program.c -l. -lfoo
-l 告訴編譯器在當前目錄下查詢函式庫
共享庫檔案:*.so,*.sa
它本身不包含函式的**,而只儲存共享**的呼叫線索,共享**在該程式執行的時候才加入到
其中。當編譯好的程式被載入到記憶體中準備執行的時候,函式的呼叫線索被解析,程式校共享庫發出
呼叫,共享庫只在必要的時候才被載入到記憶體中。在記憶體中只保留乙份共享庫拷貝供許多程式使用。
檢視程式呼叫了哪些共享庫:
$ ldd 可執行程式名
shell程式設計我就不多介紹了,但它是基礎中的基礎,必要掌握。我覺得能看懂shell指令碼就可以了。
Linux程式設計學習(續二)
訊號相當於dos下的int或者windows下的訊息。用kill l命令可以檢視各種訊號資訊。用man 7 signal可檢視各個訊號的具體解釋。軟體原因和硬體原因都會產生訊號。常用的發訊號的函式包括 kill raise alarm setitimer kill pid t pid int sig...
Linux程式設計學習筆記(二)
續上個章節,這個章節主要是linux的遠端登入系統操作筆記 一 linux一般作為伺服器使用,但是伺服器都是在機房的,所以不可能經常跑到機房去作業系統,所以使用遠端登入系統,在linux的系統一般使用的是ssh 服務預設埠號是22,在windows上的linux遠端登入客戶端有securecrt p...
Linux學習之shell程式設計二
shell script 的預設變數 0,1.代表後接的引數個數 代表 1,2,3,4之意 代表 1c 2c 3c 4 其中c為分隔符,預設為空格 shift 可以偏移變數號碼,比如shift 或者shift 2可以將變數 向左移動1次或2次 bin bash filename shell05.sh...