LINUX應用程式開發隨筆

2022-09-08 13:24:11 字數 2193 閱讀 1164

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 根據前述思路或數學模型編寫程式。除了非常簡單的問題可以直接寫...