linux C淺學大綱 3

2021-08-14 12:45:32 字數 1170 閱讀 5933

#define start 2018.1.5號是意義非凡的一天。

寫之前說明下為什麼寫,怎樣寫,怎樣學。

本人,小白。在某培訓機構培訓了幾個月,寫出來的東西,膚淺,有誤,請賜教。

此文章,寫給那些,想學,卻摸不到大綱的同仁。

linux c

1).補碼問題

正數的補碼就是正數的原始碼,負數的補碼就是負數的絕對值原始碼按位取反加1.

2).

gcc -e text.c ---> text.i

gcc -s text.i ---> text.s

gcc -c text.s ---> text.o

gcc -o text text.o  ---> text(可執行檔案)

gcc text.c -v 檢視編譯檔案時的路徑

3).靜態庫/動態庫/動態載入

原始檔:text.c sub.c arg.c 其中text.c中用到sub.c 與arg.c封裝的函式

靜態庫:

a.    gcc -c  arg.c sub.c

b.    ar -r libmath .a sub.o arg.o

c.    gcc text.c -l. -lmath

-l(pname位址)  -l(name靜態庫名字,不加字尾.a)

動態庫:

a.    gcc -c -pfic  sub.c arg.c

b.    gcc -shared -libmath.so sub.o arg.o

c.    export ld_library_path=$ld_library_path:./math(或者gcc ./a.out -v檢視系統執行路徑,新增libmath.so到其中任意路徑中)

d.    gcc  text.c -l. -lmath -o text

e.     ./text

動態載入:

#include  

#incldue  

typedef int (*func_t)(int, int);

int main ()

gcc text.c -ldl -o textdy

4).  檢視程序間的對映

#include

#incldue

pid_t getpid(void);

cat /proc/程序id/maps

linux C淺學大綱 2

define start 2018.1.5號是意義非凡的一天。寫之前說明下為什麼寫,怎樣寫,怎樣學。本人,小白。在某培訓機構培訓了幾個月,寫出來的東西,膚淺,有誤,請賜教。此文章,寫給那些,想學,卻摸不到大綱的同仁。二.基礎知識擴充套件 學習linux c之前,應該先掌握,標準c語言基本知識。1 鍊...

Linux C基礎筆記(3)

補充申明 linux c基礎筆記共分為四部分,第一部分是linux下基本命令,以及vi編輯器的使用還有c中的資料型別,第二部分為運算子 常量變數和輸入輸出。第三部分是控制語句 陣列 字串函式。第四部分為指標 函式以及分配記憶體管理。在寫完這四部分之後我會繼續上傳資料結構 io 以及網路程式設計的學習...

Linux C 之檔案程式設計(3)

讀寫檔案通常是大量的資料 這種大量是相對於底層驅動的系統呼叫所實現的資料操作單位而言 這時,使用庫函式就可以大大減少系統呼叫的次數。這一結果又緣於緩衝區技術。在使用者空間和核心空間,對檔案操作都使用了緩衝區,例如用fwrite寫檔案,都是先將內容寫到使用者空間緩衝區,當使用者空間緩衝區滿或者寫操作結...