日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux开发初步

發(fā)布時間:2023/12/20 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux开发初步 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Linux開發(fā)初步


宗旨:技術(shù)的學(xué)習(xí)是有限的,分享的精神是無限的。


一、庫函數(shù)與系統(tǒng)調(diào)用

1、系統(tǒng)調(diào)用函數(shù)和庫函數(shù)

庫函數(shù)是一些完成特定功能的函數(shù),一般由某個標(biāo)準(zhǔn)組織制作發(fā)布,并形成一定的標(biāo)準(zhǔn)。使用庫函數(shù)編寫的函數(shù)一般可以應(yīng)用于不同的平臺而不需要做任何修改,具有很好的可移植性。

系統(tǒng)調(diào)用函數(shù)與操作系統(tǒng)直接相關(guān),不同的操作系統(tǒng)所使用的系統(tǒng)調(diào)用可能不太一樣,因此,如果兩個操作系統(tǒng)差異很大,系統(tǒng)調(diào)用函數(shù)的可移植性就不高。例如windows采用的系統(tǒng)調(diào)用的應(yīng)用程序不能直接在Linux下編譯運行。

之所以使用系統(tǒng)調(diào)用是因為系統(tǒng)資源的有限性以及內(nèi)核管理的方便,系統(tǒng)調(diào)用將上層內(nèi)的應(yīng)用開發(fā)與底層的硬件實現(xiàn)分開,上層應(yīng)用不需要關(guān)注底層硬件的具體實現(xiàn)。Linux的系統(tǒng)調(diào)用使用軟中斷實現(xiàn),使用系統(tǒng)調(diào)用后,該程序的狀態(tài)將從用戶態(tài)切換到內(nèi)核態(tài)。庫函數(shù)實現(xiàn)最終也要調(diào)用系統(tǒng)調(diào)用函數(shù),但它封裝了系統(tǒng)調(diào)用操作,從而增加了代碼的可移植性。

?

2、glibc函數(shù)庫

C語言本身沒有為常見操作(輸入輸出、內(nèi)存管理等)提供支持,都是依靠標(biāo)準(zhǔn)函數(shù)庫提供。Glibc基于如下標(biāo)準(zhǔn):

(1)ISO C(ANSI C)

(2)POSIX

(3)Berkeley UNIX:BSD號出爐函數(shù)以及套接字。

(4)SVID(System V):進程通信,共享內(nèi)存

(5)XPG(X/Open可移植性指南)

?

3、系統(tǒng)調(diào)用(系統(tǒng)調(diào)用時操作系統(tǒng)提供給外部程序的接口)

(1)系統(tǒng)調(diào)用函數(shù)通常在成功時返回0,失敗是返回非零值。檢查失敗原因,要判斷全局變量errno值,errno中包含錯誤代碼。

(2)許多系統(tǒng)調(diào)用的返回數(shù)據(jù)通常引用參數(shù)傳遞。需要在函數(shù)參數(shù)中傳遞緩沖區(qū)地址,而返回的數(shù)據(jù)就保存在該緩沖區(qū)中。

(3)不能認為系統(tǒng)調(diào)用比其他函數(shù)的執(zhí)行效率高。——系統(tǒng)調(diào)用時一個非常耗時的過程。

?

二、在線文檔

1、man手冊(man man可查看)

man1:命令??梢圆榭磗hell終端下命令使用。

man2:系統(tǒng)調(diào)用。內(nèi)核系統(tǒng)調(diào)用描述。

man3:庫函數(shù)調(diào)用。

man4:特殊文件。查看/dev目錄下的特殊文件

man5:文件格式和約定。查看/etc/passwd等文件的格式。man /etc/passwd

man6:游戲。

man7:雜項和約定。

man8:系統(tǒng)管理命令。只有管理員使用的命令。

man9:內(nèi)核例程。

如: man 1 ls???? man 2 open?? man 3 fread??man 7 man等

2、info手冊——超文本幫助系統(tǒng)(/usr/info)

3、--help

?

三、獲取錯誤信息

? ? ? ? ?調(diào)用庫函數(shù)和系統(tǒng)調(diào)用后,執(zhí)行成功返回0,或者正確值;執(zhí)行失敗返回-1,并把系統(tǒng)全局變量errno(errno.h)賦值。所有的錯誤代碼都在errno.h文件中定義。/usr/include/asm/errno.h

為了打印具體的errno'信息,一般使用perror()函數(shù)。

void perror(const char * s); // 字符串常量

if(chmod("test02", (stabuf.st_mode& ~S_IXGRP) | S_ISGID) < 0)

{

???perror("stat");

exit(EXIT_FAILURE);

}

?

四、開發(fā)環(huán)境構(gòu)成

編輯器:vi/vim,gedit,emacs,nano等【vim配置前面文章已經(jīng)提到】

編譯器:gcc 【gcc-v】

調(diào)試器:gdb

函數(shù)庫:glibc

系統(tǒng)頭文件:glibc_header

C開發(fā)過程:vim編輯保存為.c文件,gcc編譯成可執(zhí)行文件,出錯使用gdb調(diào)試。

?

五、常用鍵盤組合鍵【stty –a可以查看組合鍵】

ctrl+ c:中斷程序

ctrl+ \:退出程序

ctrl+ S:結(jié)束程序

ctrl+ Z:掛起程序

ctrl+ alt + T:打開終端(Ubuntu)

?

六、AStyleSourceInsight中應(yīng)用【AStyle插件】

Astyle下載:https://sourceforge.net/projects/astyle/files/astyle/,解壓路徑自己定

配置AStyle格式化代碼工具:Option —— Custom Cmmands —— Add —— 取名AStyle——Run:"D:\ProgramFiles\AStyle\bin\AStyle.exe" -A1 -s2 -p -j -n -c %f

配置格式化快捷鍵:Option —— Menu Assignments —— Menu下拉框選View—— 選右邊的Insert —— 點擊右下角的Key —— 點進Keystrokes中,同時按下鍵盤ctrl + alt + f確定就完成了。

astyle格式化代碼工具可以讓代碼保持整潔有序,非常有效的工具。

總結(jié)

以上是生活随笔為你收集整理的Linux开发初步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。