0.常用命令:
(1)perror:列印出錯的原因,可自動關聯全域性變數errno
(2)strerror:列印errno對應的內容
(3)malloc:
(4)ulimit:更改系統限制引數,例如:更改檔案可以開啟的最多數量
(5)比較兩個檔案是否相同: diff file1 file2 :如果相同,則什麼都不返回
0-1.常用知識點:
(1)void *賦給任何指標,或者任何指標賦給void *都是天經地義的。
(2)棧、堆、靜態區的區別:
靜態儲存區:內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在。它主要存放靜態資料、全域性資料和常量。
棧區:在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指令集中,效率很高,但是分配的記憶體容量有限。
堆區:亦稱動態記憶體分配。程式在執行的時候用malloc或new申請任意大小的記憶體,程式設計師自己負責在適當的時候用free或delete釋放記憶體。動態記憶體的生存期可以由我們決定,如果我們不釋放記憶體,程 序將在最後才釋放掉動態記憶體。 但是,良好的程式設計習慣是:如果某動態記憶體不再使用,需要將其釋放掉,否則,我們認為發生了記憶體洩漏現象。
(3)誰開啟誰關閉,誰建立誰銷毀,是資源就有上限
(4)檔案許可權自動生成規則: 0666 & ~umask (其中umask的值,直接在終端下輸入即可,umask的存在,就是為了防止產生許可權過鬆的檔案)
(5)要養成使用任何函式一定要包含其標頭檔案的習慣
①建立配置檔案:vim ~/.vimrc
②set tabstop=4
set softtabstop=4
set shiftwidth=4 set expandtab set autoindent
1.linux應用程式開發主要學習的知識點4個:i/o、檔案系統、併發、ipc(inter-process communication 程序間通訊); 參考書籍為檔案系統:4、6、7章
併發: 訊號:10章 多執行緒 10、11章
ipc: 程序基礎:8章 守護程序:13章 程序間通訊:15、16章
2.i/o(input & output 是一切實現的基礎)
i/o分兩種,一種是標準i/o(stdio) -->第五章 ,一種是系統呼叫i/o,也叫檔案i/o(sysio) --->第三章 優先使用標準i/o,可移植性好
3.標準i/o(stdio): file型別貫穿始終
檔案開啟、關閉:fopen fclose
字元/字串讀寫:fgetc fputc fgets fputs fread fwrite
列印以及讀取:printf scanf
檔案指標操作:fseek ftell rewind
ffflash
4.fopen、fclose的講解:
(1)file指標,是存放在堆中的
(2)fprintf用來列印很方便,輸出路徑輸入stderr,可以直接列印在控制台上,
(3)perror列印和strerror列印非常好用,詳細見常用命令1、2
(4)生成檔案的許可權規則詳見常用知識點4
(5)但凡碰到函式指標,就多思考一下指標的返回是堆還是棧還是靜態區
5.fgetc、fputc的講解:
(1)getc在系統中被定義成巨集來使用,fgetc在系統中被定義成函式來使用。其中巨集不占用系統呼叫時間,只占用編譯時間,函式則恰恰相反。
(2)開啟檔案,就必須關閉檔案。如果開啟檔案後,在後續的操作中發生異常,必須關閉檔案,此處操作最好掛在鉤子上。
(3)用這兩個函式和fopen、fclose這兩個函式,可以實現cp函式的功能以及統計乙個檔案內有多少個有效字元的功能
6.fgets、fputs的講解:
(1)fgets正常結束的方式有2種:①讀取到size-1個字元 ②讀取到『\n』,其中①,讀取size-1結束,是因為最後有乙個『\0』
7.四種輸出的講解:
(1)printf:輸出到標準輸出上
(2)fprintf:輸出到指定輸出流上
(3)sprintf:輸出到字串上
(4)snprintf:輸出到固定長度的字串上(防止越界)
8.三種輸入的講解:
(1)scanf:從標準輸入裝置上獲取
(2)fscanf:從指定流獲取
(3)sscanf:從字串鐘獲取
Linux應用程式開發 Hello
第一步 在linux平台 我用的是redhat9.2 上安裝好gcc編譯工具,例如編譯arm平台的應用程式可用arm linux gcc,如用在pc平台下執行,可用pc自帶的gcc。第二步 編寫hello程式,可以使用redhat自帶的gedit。程式如下 include int main 並將程式...
Linux開發GUI應用程式概述
linux開發gui應用程式概述 linux歷史簡介 1991年,芬蘭大學生linus torvalds編寫了乙個小的作業系統核心,這就是linux的前身,linus torvalds也由此成為了linux之父。linus torvalds將linux系統的源 在internet上公布,使linux...
應用程式開發步驟
c 是一種編譯語言,c 源程式需要經過編譯 連線,生成可執行檔案後方可執行。使用c 開發乙個應用程式大致要經過以下步驟 1 首先要根據實際問題確定程式設計的思路,包括選用適當的數學模型。這方面的內容其實也是各應用學科的主要研究領域之一。2 根據前述思路或數學模型編寫程式。除了非常簡單的問題可以直接寫...