Linux系統學習筆記 第三天

2021-09-25 15:06:54 字數 1837 閱讀 1109

1、通過函式返回值表示錯誤

返回值合法表示成功,非法表示失敗

返回有效指標表示成功,空指標(null/0xffffffff)表示失敗

返回0表示成功,-1表示失敗。

永遠成功,printf

2、通過errno表示錯誤

errno是乙個全域性變數,它的宣告在errno.**件中,它的值隨時可能發生變化。

可以將它轉換成有意義的字串,strerror(errno) <=>perror("msg")

注意:在函式執行成功的情況下,不會修改errno的值。

因此不能以errno的值不等於0就判斷函式執行出錯了。

所以通常會和函式的返回值配合,通過返回值判斷是否出錯,而通過perror查詢出了什麼型別的錯誤。

以字串形式存在的,絕大多數記錄的是路徑資訊,它表示了當前作業系統的資源配置,以及環境設定等相關資訊。

1、環境變數表

每個程式執行時,作業系統都會把所有的環境變數記錄到一張表中,傳給程式。

#includeint main(int argc,char* ar**,char* environ)

}

2、環境變數函式

char* getenv(const char *name);

功能:根據環境變數名,獲取環境變數的值。

int putenv(char *string);

功能:以name=value形式設定環境變數,如果環境變數存在則更新,不存在則新增。

返回值:成功返回0,失敗返回-1

int setenv(const char *name,const char *value,int overwrite);

功能:設定name環境變數的值為value,name不存在則更新,如果name存在且overwrite不為0則更新,否則不變。

int unsetenv(const char *name);

功能:從環境變數表中刪除name

int clearenv(void);

功能:清空環境變數表。

注意:作業系統記錄的環境變數的資料記錄一塊特殊的儲存空間,而在程式自己新增的環境變數需要自己準備儲存空間。

注意:對於環境變數的修改,只能影響自己,不能影響別人。

自動分配/釋放記憶體auto_ptr    stl   呼叫標準c++中的new/delete

new/delete 構造/析構 c++ 標準c中的malloc/free

malloc/free 標準c 呼叫posix

brk/sbrk posix 呼叫linux系統介面

mmap/munmap linux 呼叫核心介面

kmalloc/vmalloc 核心 呼叫驅動

get_free_page 驅動 ......

程式是儲存在磁碟上的可執行檔案,載入到記憶體中被作業系統呼叫執行的程式叫程序(乙個程式可以被同時執行多次形成身份不同的程序)。

**段/唯讀段:

二進位制指令、字串字面值、具有const屬性且被初始化過的全域性、靜態變數。

資料段:被初始化過的全域性變數和靜態變數。

bss段:沒有初始化過的全域性變數和靜態變數,程序一旦載入成功就會把這段記憶體清理為零。

堆:動態的分配、管理,需要程式設計師手動操作。

棧:非靜態的區部變數,包括函式的引數、返回值。

從高位址向低位址使用,和堆記憶體之間存在一段空隙。

命令列引數及環境變數表:命令列引數、環境變數

vue第三天系統學習筆記

屬性繫結 1.vue如何動態繫結屬性 v bind 指令用法 a v bind herf url 跳轉 縮寫形式 a herf url 跳轉 2.v model的底層實現原理分析 input value msg v on input msg event.target.value 3樣式繫結 1 cl...

學習Linux第三天

1 while語句 while語句的一般形式 while 表示式 語句 其中,表示式是迴圈條件,語句為迴圈體。1 while語句中的表示式一般是關係表示式或邏輯表示式,只要表示式的值為真 非0 即可繼續迴圈。2 迴圈體若包括乙個以上的語句,則必須用 括起來,組成復合語句。如果忽略了花括號的用途,語句...

linux學習第三天

一 檔案重定向 linux中認為一切皆為檔案 檔案描述符 標準輸入 從鍵盤獲取資料 0 標準輸出 在螢幕上顯示正確資料 1 標準錯誤 在螢幕上顯示錯誤的資料 2 1 使用 進行檔案重定向 history a 把history的內容放在a檔案中 命令 檔案描述符 檔案 注意 會先把右側的檔案清空在寫入...