1.exit( )電腦函式
函式名: exit()
所在標頭檔案:stdlib.h(如果是」vc6.0「的話標頭檔案為:windows.h)
功 能: 關閉所有檔案,終止正在執行的程序。
exit(1)表示異常退出.這個1是返回給作業系統的。
exit(x)(x不為0)都表示異常退出
exit(0)表示正常退出
exit()的引數會被傳遞給一些作業系統,包括unix,linux,和ms dos,以供其他程式使用。
stdlib.h: void exit(int status);
參 數 : status //程式退出的返回值.
exit()和return的區別:
按照ansi c,在最初呼叫的main()中使用return和exit()的效果相同。
但要注意這裡所說的是「最初呼叫」。如果main()在乙個遞迴程式中,exit()仍然會終止程式;但return將
控制權移交給遞迴的前一級,直到最初的那一級,此時return才會終止程式。return和exit()的另乙個區別
在於,即使在除main()之外的函式中呼叫exit(),它也將終止程式。
_exit()與exit的區別:
標頭檔案:
exit:#include
_exit:#include
_exit()函式:直接使程序停止執行,清除其使用的記憶體空間,並銷毀其在核心中的各種資料結構;
exit()函式則在這些基礎上作了一些包裝,在執行退出之前加了若干道工序。
exit()函式與_exit()函式最大的區別就在於 exit()函式在呼叫 exit 系統呼叫之前要檢查檔案的開啟情況,把檔案緩衝區中的內容寫回檔案。
2.sleep( )電腦函式
函式名: sleep
功 能: 執行掛起一段時間
用 法: void sleep(dword dwmilliseconds);
在vc中使用帶上標頭檔案
#include
( sleep函式存放標頭檔案:winbase.h)
在gcc編譯器中,使用的標頭檔案因gcc版本的不同而不同
#include
sleep()單位為毫秒,sleep()單位為秒(如果需要更精確可以用usleep單位為微秒)
返回值若程序/執行緒掛起到引數所指定的時間則返回0,若有訊號中斷則返回剩餘秒數。
在vc中sleep中的第乙個英文本元為大寫的"s"
在標準c中是sleep, 不要大寫… 下面使用大寫的來說明, 具體用什麼看你用什麼編譯器. 簡單的說vc用sleep, 別的一律使用sleep.
sleep函式的一般形式:
sleep(unsigned long);
其中,sleep()裡面的單位,是以毫秒為單位,所以如果想讓函式滯留1秒的話,應該是sleep(1000);
在linux下,sleep中的「s」不大寫
sleep()單位為秒,usleep()裡面的單位是微秒。在核心中,sleep的實現是由pause函式和alarm函式兩個實現的。
特別注意在codeblocks環境下是無法使用sleep函式的,因為在windows上codeblocks採用mingw(gnu在window環境下的編譯器,可以充分使用 windowsapi)作為編譯器,而在stdlib.h中sleep的說明如下:_crtimp void __cdecl __mingw_nothrow _sleep (unsigned long) _ _mingw_attrib_deprecated;可以認為mingw捨棄了sleep函式,建議用sleep實現sleep。
3.strerror( )
函式名:strerror、_streeor、_wcserror、_wcserror
函式作用:獲取系統錯誤資訊或列印使用者程式錯誤資訊
標頭檔案:#include
4.eintr:linux中函式的返回狀態,在不同的函式中意義不同
write 表示:由於訊號中斷,沒寫成功任何資料
read 表示:由於訊號中斷,沒讀到任何資料
sem_wait 表示:函式呼叫被訊號處理函式中斷
recv 表示: 由於訊號中斷返回,沒有任何資料可用
memset( )函式
函式原型:void *memset(void *s,int ch,size_t n)
memset是計算機中c/c++語言函式。將s所指向的某一塊記憶體中的前n個 位元組的內容全部設定為ch指定的ascii值, 第乙個值為指定的記憶體位址,塊的大小由第三個引數指定,這個函式通常為新申請的記憶體做初始化工作,
作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法
例:對buf[100]j進行清零
memset(&buf,0,sizeof(buf));
Linux嵌入式開發的一些總結
宋立新email zjujoe yahoo.com 做了幾年 linux 底層嵌入式開發,有一些心得,這裡記錄下來,作為進一步學習 linux 之前的乙個總結。daily build nokia microsoft 等,都採用了該機制。是終端產品開發中乙個 best practise.其好處有 構建...
嵌入式中斷服務函式的一些特點
中斷服務程式需要滿足如下要求 1 不能返回值 2 不能向isr傳遞引數 3 isr應該盡可能的短小精悍 4 printf char lpformatstring,函式會帶來重入和效能問題,不能在isr中採用。中斷服務函式的呼叫是硬體級別的,當中斷產生,pc指標強制跳轉到對應的中斷服務函式入口,進入中...
記錄一些嵌入式筆試要點
1 sizeof 字串 有包含 0 而strlen 字串 不包含 0 2 sizeof 對這3種定義的區別在下面的小 中。3 strlen 對這3種定義的結果都是一樣的。如下 include include intmain 小結 sizeof 結果不一樣的原因 1 a和b都是字元陣列,a的大小在賦值...