一般在使用過程中,通常通過fork建立乙個新的程序都是為了立即執行新的、不同的程式,通過呼叫exec函式族建立新的位址空間,並載入新的程式。
最終通過exit()系統呼叫退出執行,提到這個函式可以想到與之相近的幾個函式,如下:
exit() 終結當前程序並將其所占用的資源釋放掉。
_exit()和_exit()終結當前程序但不會釋放所占用的資源。
return 結束當前函式,並且帶出返回值。
exec函式族的原型如下:
int
execl
(const
char
*path,
const
char
*arg,..
.);int
execlp
(const
char
*file,
const
char
*arg,..
.);int
execle
(const
char
*path,
const
char
*arg,..
.,char
*const envp)
;int
execv
(const
char
*path,
char
*const ar**)
;int
execvp
(const
char
*file,
char
*const ar**)
;int
execvpe
(const
char
*file,
char
*const ar**,
char
*const envp)
;
以上函式簡單可以理解為使用乙個新的程序來替換掉當前的程序。
#include
#include
#include
/**列印時戳 date+%s
*/int
main
(int argc,
char
*ar**)
puts
("end");
return0;
}
其他函式用法與以上函式的用法差不多,就不在這裡贅述了。 linux中的系統呼叫
linux 0.11 中的close api解析 通常情況下,呼叫系統呼叫和呼叫普通自定義函式在 上並沒有什麼區別,但呼叫後發生的事情有很大不同。呼叫自定義函式是通過call指令直接跳轉到該函式的位址,繼續執行。呼叫系統呼叫是呼叫系統庫中為該系統呼叫編寫的乙個介面函式,即api。而api要做的就是去...
Linux中的系統呼叫
當使用者態的程序呼叫乙個系統呼叫時,cpu切換到核心態並開始執行乙個核心函式。核心實現了許多不同的系統呼叫,程序必須傳遞乙個名為系統呼叫號 system call number 的引數來識別所需的系統呼叫,eax暫存器就用作此目的。所有的系統呼叫均返回乙個整數值。系統處理程式與其他異常處理程式的結構...
Linux中的wait系統呼叫
系統中的殭屍程序都要由wait系統呼叫來 下面就通過實戰看一看wait的具體用法 wait的函式原型是 include 提供型別pid t的定義 include pid t wait int status 程序一旦呼叫了wait,就立即阻塞自己,由wait自動分析是否當前程序的某個子程序已經退出,如...