c語言程序建立 等待和退出

2021-09-19 01:40:21 字數 3063 閱讀 5072

建立程序

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...