建立程序
fork()函式:函式返回值型別為pid_t
若程式執行在父程序中,函式返回的pid為子程序今年稱號;
弱執行在子程序中返回pid為0.
#include
#include
#include
using
namespace std;
intmain
(void
)else
if(pid >0)
else
exit(0
);}
修改程序#include
#include
#include
using
namespace std;
int g_var =10;
intmain
(void
)else
if(pid >0)
else
exit(0
);}
exec()函式族:
函式名字中的字元含義:
p ⇒
\rightarrow
⇒ path,只需寫出檔名,函式自動搜尋系統path路徑
l ⇒
\rightarrow
⇒ list,表示將每個命令列引數都傳給他,引數個數可變,最後輸入null表示結束
v ⇒
\rightarrow
⇒ vector,該類函式只支援使用引數陣列,陣列最後乙個指標也要輸入null,類似於ar**
e ⇒
\rightarrow
⇒ environment,表示將乙份新的環境變數表傳給他
函式名字中的字元含義:#include
#include
intexecl
(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)
;
p ⇒
\rightarrow
⇒ path,只需寫出檔名,函式自動搜尋系統path路徑
l ⇒
\rightarrow
⇒ list,表示將每個命令列引數都傳給他,引數個數可變,最後輸入null表示結束
v ⇒
\rightarrow
⇒ vector,該類函式只支援使用引數陣列,陣列最後乙個指標也要輸入null,類似於ar**
e ⇒
\rightarrow
⇒ environment,表示將乙份新的環境變數表傳給他
/*execve.c檔案*/
#include
#include
#include
using
namespace std;
extern
char
**environ
intmain()
/*new2.c檔案*/
#include
#include
#include
using
namespace std;
intmain()
等待程序#include
#include
#include
using
namespace std;
intmain
(int argc,
char
* ar**)
execlp
("/bin/vi"
,"vi"
,ar**[1]
,(char*)
null);
return0;
}
wait():函式首先判斷程序是否存在,不存在直接退出並且提示錯誤;
程序存在則將父程序掛起,直到子程序結束。
程序結束#include
#include
#include
#include
using
namespace std;
intmain()
else
id(pid ==0)
//呼叫wait等待子程序結束if(
wait
(&status)
!= pid)
}
exit() 和 _exit() 都沒有返回值
fork() ⇒
\rightarrow
⇒ exit()
vfork() ⇒
\rightarrow
⇒ _exit()
文中**和知識點來自《linux c從入門到精通》
建立程序並等待程序退出
cereatepross.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include include using namespace std bool findandkillprocessbyname lpctstr strp...
程序的建立,等待,退出,
標頭檔案 include 定義函式 int system const char string 函式說明 system 會呼叫fork 產生子程序,由子程序來呼叫 bin sh c string來執行引數string字串所代表的命令,此命令執行完後隨即返回原呼叫的程序。在呼叫system 期間sigc...
程序的等待和退出
等待和退出實際上是父子程序之間的一種互動,完成子程序的資源 關於wait 的實現,實際上是把程序的狀態改為 sleep 那麼這兩者誰先發生呢?先後順序有什麼影響?1.當有子程序存活時,父程序進入等待狀態,等待子程序的返回結果 當某子程序呼叫exit 時,喚醒父程序,將exit 返回值作為父程序中wa...