#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寫檔案,都是先將內容寫到使用者空間緩衝區,當使用者空間緩衝區滿或者寫操作結...