本章內(nèi)容對(duì)應(yīng)視頻講解鏈接(在線觀看):
什么是 Linux 系統(tǒng)編程呢?Linux 系統(tǒng)編程也叫 Linux 下的高級(jí)編程。是介于應(yīng)用層和驅(qū)動(dòng)層之間的。內(nèi)核向用戶(hù)提供的接口。本章講述編寫(xiě) Linux 系統(tǒng)應(yīng)用層軟件常用的一些技術(shù),包括文件 IO,標(biāo)準(zhǔn) IO,進(jìn)程線程操作。這些運(yùn)行在系統(tǒng)應(yīng)用層的程序直接與內(nèi)核和系統(tǒng)核心庫(kù)進(jìn)行交互,只能在 Linux 上運(yùn)行,不能跨 平臺(tái),也就是不能運(yùn)行在其他操作系統(tǒng)上(比如 windows)。Linux 根據(jù) UNIX 發(fā)展而來(lái),屬于類(lèi) UNIX 操作系統(tǒng),擁有 UNIX 特點(diǎn),但是 Linux 作為開(kāi)源軟件更專(zhuān)注實(shí)用功能,支持更多的系統(tǒng)調(diào)用,從而擁有更多的新特性。 學(xué)習(xí)系統(tǒng)編程可以使用 man 手冊(cè)查看 API,查找用到的頭文件,如“man 2 open”,使用“top”等命令查看進(jìn)程狀態(tài)。本文檔主要通過(guò)實(shí)驗(yàn)例程來(lái)說(shuō)明各系統(tǒng)調(diào)用 API 和各種機(jī)制的用法。 在開(kāi)始系統(tǒng)編程前首先要搭建環(huán)境,大家可以參考本手冊(cè)第二十四章安裝 Samba,首先我們來(lái)了解下Linux 系統(tǒng)編程的基本程序框架。Samba 搭建好之后,我們?cè)?samba 文件夾下新建 linux 文件夾,如下圖所示:
首先來(lái)編寫(xiě)下 Linux 系統(tǒng)編程的基本程序框架,在 linux 文件夾下新建 01 文件夾,01 文件夾里面新建test.c 文件,內(nèi)容如下所示。代碼在配套資料“系統(tǒng)編程配套程序/01”目錄下。
我們?cè)?Ubuntu 的 Samba 目錄下輸入以下編譯 test.c,如下圖所示編譯生成了 a.out。 gcc test.c ls
此時(shí) main()函數(shù)是沒(méi)有參數(shù)的,但是我們?cè)趯W(xué)習(xí) Linux 系統(tǒng)編程的時(shí)候,大多數(shù) main 函數(shù)都是帶參數(shù)的,因?yàn)槲覀円浜厦钚衼?lái)給我們的程序傳參數(shù)。大部分情況下,main 函數(shù)的參數(shù)為 int argc,char *argv[]。argc 表示的命令行中參數(shù)的個(gè)數(shù)。argv 表示的是命令行中的參數(shù)。 更多內(nèi)容:?jiǎn)袅▎袅ㄋ阉?北京迅為,可以學(xué)習(xí)更多內(nèi)容 |