Linux程式設計學習二

2021-04-01 02:01:20 字數 1183 閱讀 9066

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...