進程和程序的區別:
進程是動態的,程序是靜態的
一、進程的創建(fork()函數)
![wKgZomW2B_yALAYpAApYeMdROq0851.png](https://file1.elecfans.com/web2/M00/BE/B6/wKgZomW2B_yALAYpAApYeMdROq0851.png)
int main()
{
pid_t pid;
pid=fork();
if(pid>0)
{
printf("this is father,pid is:%dn",getpid());
}
else if(pid==0)
{
printf("this is son,pid is :%dn",getpid());
}
// printf("pid is :%d,current pid is:%dn",pid,getpid());
return 0;
}
~
結果:
![wKgZomW2CSGAILkCAAGzAiPANHk950.png](https://file1.elecfans.com/web2/M00/BE/B6/wKgZomW2CSGAILkCAAGzAiPANHk950.png)
![wKgaomW2B9CAex1nAANW1R7Re5Q590.png](https://file1.elecfans.com/web2/M00/BF/A2/wKgaomW2B9CAex1nAANW1R7Re5Q590.png)
結果:
![wKgZomW2B8GAEjJ6AAIfT0RDUv0068.png](https://file1.elecfans.com/web2/M00/BE/B6/wKgZomW2B8GAEjJ6AAIfT0RDUv0068.png)
![wKgZomW2EIKAJQM7AA-hTRur3e4730.png](https://file1.elecfans.com/web2/M00/BE/B7/wKgZomW2EIKAJQM7AA-hTRur3e4730.png)
![wKgaomW2GruAYJd-ABbHJ6XiVcs835.png](https://file1.elecfans.com/web2/M00/BF/A3/wKgaomW2GruAYJd-ABbHJ6XiVcs835.png)
二、進程退出
![wKgZomW2Gw-AGQkVABFk_iO_u-E188.png](https://file1.elecfans.com/web2/M00/BE/B7/wKgZomW2Gw-AGQkVABFk_iO_u-E188.png)
![wKgaomW2G72ALIYpAAourNC3yww556.png](https://file1.elecfans.com/web2/M00/BF/A3/wKgaomW2G72ALIYpAAourNC3yww556.png)
![wKgaomW2WuuAY0gmABwu0Ub82T4016.png](https://file1.elecfans.com/web2/M00/BF/A4/wKgaomW2WuuAY0gmABwu0Ub82T4016.png)
三、exec族函數的用法
用perror()的方式打印錯誤碼信息
//文件execl.c
#include ??stdio.h???>
#include ??stdlib.h???>
#include ??unistd.h???>
//函數原型:int execl(const char *path, const char *arg, ...);
int main(void)
{
printf("before execln");
if(execl("./bin/echoarg","echoarg","abc",NULL) == -1)
{
printf("execl failed!n");
perror("why");
}
printf("after execln");
return 0;
}
![wKgaomW2ZfuAHHmhAAKl9yc56zI020.png](https://file1.elecfans.com/web2/M00/BF/A4/wKgaomW2ZfuAHHmhAAKl9yc56zI020.png)
四、system系統函數
-
Linux
+關注
關注
87文章
11345瀏覽量
210414 -
進程
+關注
關注
0文章
204瀏覽量
13997
發布評論請先 登錄
相關推薦
評論