linux高階程式設計總結

2021-10-19 16:20:16 字數 2682 閱讀 1329

第一章模板1

1.1 模板的概念1

1.2 模板與巨集的區別3

1.3 函式模板的定義與使用4

1.4 類模板的定義與使用5

1.5 模板的編譯原理7

第二章 c++ stl17

2.1 unix/linux 基本結構17

2.2 輸入和輸出19

2.2.1 unix/linux 檔案系統簡介19

2.2.2 流和標準i/o 庫20

2.3 程序21

第3章程序控制22

第四章程序控制22

第五章程序控制22

第六章程序控制22

第一章模板

1.1 模板的概念

處理的資料型別隨實際情況變化時,可以將資料型別作為可變的部分(型別引數),從程式中抽取出來。當出現真實的資料型別時,再用具體的資料型別代替;

模板分為兩種:函式模板(function template) 類模板(class template)

1.2 模板和巨集定義的區別

巨集定義:避開型別檢查

過載:**冗餘

第二章 stl

2.1 容器的型別

順序容器——向量(vector)

順序容器——列表 (list)

關聯容器——map

第三章檔案io

linux常見的檔案型別:

普通檔案:按資訊儲存方式分為文字檔案和二進位制檔案第乙個字元為』-』

目錄檔案:主要用於管理和組織系統中的大量檔案第乙個字元為『d』

裝置檔案:第乙個字元是『c』表示字元裝置檔案,『b』表示塊裝置檔案

管道檔案:主要用於在程序間傳遞資料(本地通訊),第乙個字元為『p』

套接字檔案:允許網路上的通訊第乙個字元為『s』

鏈結檔案:該檔案包含另乙個檔案的路徑名第乙個字元為『l』

檔案描述符

定義很小的正整數,是乙個索引值,指向核心為每乙個程序所維護的該程序開啟檔案的記錄表,用以標明每個被程序所開啟的檔案和socket。

標準檔案描述符

0:stdin-----需要處理的資料流(標準輸入)

1:stdout---結果資料流(標準輸出)

2:stderr---錯誤訊息流(錯誤輸出)

檔案訪問系統api

最常用的檔案作業系統呼叫

open()開啟檔案

create()建立檔案

close()關閉檔案

read()讀取檔案

write()寫入檔案

lseek()移動檔案指標

fcntl()

open()系統呼叫

int open(const char *pathname, int flags);

int open(const char *pathname, int flags, mode_t mode);

成功返回檔案描述符fp,失敗時返回-1.第乙個引數是乙個字串引數,是要建立和開啟的新檔案的嗎路徑名。第二個引數指明了open操作需要建立乙個新檔案的「標誌」。

第三個引數指明了新建立的檔案的訪問許可權。

open()系統呼叫的「標誌」

creat()系統呼叫

int creat(const char *pathname, mode_t mode);

creat()相當於open使用了引數flags等於o_creat |o_wronly|o_trunc

close()系統呼叫

int cloae(int fd);

關閉並釋放乙個檔案檔案描述符,成功是返回0,失敗返回-1.

read()和write()系統呼叫

#include

ssize_t read(int fd, void *buf, size_t count);

ssize_t write(int fd, const void *buf, size_t count);

fd:要進行讀寫操作的檔案描述符

buf:要寫入檔案內容或讀出檔案內容的記憶體位址

count:要讀寫的位元組數

注意:buf的長度必須要大於或者等於count

呼叫write()後都必須檢查返回值是否與要寫入的相同

如果read()讀取成功返回讀取的位元組數目,失敗返回-1.

lseek()系統呼叫

off_t lseek(int fildes, off_t offset, int whence);

fildes:檔案描述符

offset:移動的偏移量,單位為位元組數

whence:檔案指標移動偏移量的解釋,

移動成功時返回檔案指標的當前位置,失敗時返回-1.

修改檔案屬性:

int fcntl(int fd,int cmd,long arg);

int fcntl(int fd,int cmd,struct flock *lock);

fd是檔案描述符,第二個引數指定了函式的操作,函式功能如下:

獲取/設定檔案描述符標誌(cmd=f_getfl或cmd=f_setfd)

獲取/設定檔案鎖(cmd=f_getfk、cmd=f_setlk或cmd=f_setlek)

第4章:程序管理

fork()?vfock

1. fork

vfork

2. fork

vforkexec ?exitexec

?exit

3. vforkexec ?exit

linux串列埠程式設計

這幾天,由於長春門檢系統專案的需要,涉及到了讀卡器資訊的串列埠讀取,所以在linux下串列埠資訊的讀取有了一點心得體會。1開啟串列埠 與其他的關於裝置程式設計的方法一樣,在linux下,操作 控制串列埠也是通過操作起裝置檔案進行的。在linux下,串列埠的裝置檔案是 dev ttys0或 dev t...

PC高階程式設計 總結

1.文件否讀取檔案 fptr 檔案 開啟,c documents and settings 桌面 讀取 v4迴圈 開始,標識 是,編號 3,開始 1,跳過 偏置 x 軸 0,y 軸 0,z 軸 0,角度 0 v3檔案 讀取行,fptr,fw檔案 開啟,c documents and settings...

VC高階程式設計總結 1

018 在靜態控制項上畫座標和圖 10 019 動態庫程式的編寫 11 020 動態連線庫的載入 12 021 自定義訊息的實現 12 022 執行緒的啟動 無引數 13 023 執行緒的啟動 有引數 13 024 多執行緒畫線的操作 14 025 檔案的開啟 讀寫 關閉 15 026 檔案的塊讀寫...