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檔案中 命令 檔案描述符 檔案 注意 會先把右側的檔案清空在寫入...