程序的建立,等待,終止與程式替換

2021-08-21 22:07:41 字數 1458 閱讀 4477

4

int main(void)

12 printf("after:pid is %d\n",getpid());

13 sleep(1);

14return

0;**執行結果**

$ ./a.out

before :pid is

25710

//程序id

after:pid is

25710

//父程序id

after:pid is

25711

//子程序id

//建立子程序成功之後,等待10秒後退出

18if(pid==0)

22else

32//若異常退出,返回了-1,

33else

if(ret<0)

36 }

**執行結果**

./a.out

child exit code:10

// 子程序正常退出

pid_t waitpid(pid_t pid, int *status, int options);

//options有兩種取值,取0時為阻塞,wnohang 時為非阻塞

//wnohang 表示如果沒有已經退出的子程序需要收集,返回0;若正常結束,則返回子程序pid

1

#include

2#include

3#include

4#include

5#include

6char *argv[8] //最多8個字元,儲存命令列引數

7int argc=0; //命令列引數個數

8//例如ps -ef 命令列引數個數為2,引數分別為 ps 和-ef910

//解析命令列,從buf 中判斷哪些顯示在命令列上,哪些不顯示

11void parse(char *buf)

12 22else

if(isspace(buf[i]))//若遇到空格,則不讀

23

27 }

28 argv[i]=null;//已經讀完

29 }

31//程式替換

32void execute(void)

33 51 }

程序控制 程序建立 程序終止 程序等待 程式替換

程序建立 fork vfork vfork 的子程序不能在main函式中return退出 fork 和 vfork clone 同樣可以建立程序或者執行緒,它的引數更多,功能更強大 在核心中都是呼叫 do fork 實現程序的建立,只是引數不同 fork 要建立 pcb,虛擬位址空間,頁表 程序終止...

程序建立,終止,等待

今天我們來說一說程序的建立,終止,等待。1 程序的建立 建立乙個程序我們用到的函式是fork函式,它從已存在的程序中建立乙個新的程序,新程序為子程序,而原程序為父程序。fork函式 include pid t fork void 子程序返回0,父程序返回子程序的id,出錯返回 1。值得注意的是,父程...

Linux 程序的建立 等待與終止

使用fork函式來建立程序,它可以從已存在的程序中建立乙個新程序,新程序為子程序,原程序為父程序。程序呼叫fork,當控制轉移到核心中的fork 後,核心 程序建立的 執行結果 可以從結果看出新產生了乙個pid為4060的程序,這個程序就是子程序,pid為4059的程序是父程序,在子程序也進入到程序...