进程和程序的区别:
进程是动态的,程序是静态的
一、进程的创建(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文章
11029浏览量
207237 -
进程
+关注
关注
0文章
196浏览量
13908
发布评论请先 登录
相关推荐
Linux进程的睡眠和唤醒
在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为 TASK_RUNNING。一旦一个运行中的
发表于 06-07 12:26
•347次阅读
Linux下的进程结构
`#嵌入式培训#华清远见嵌入式linux学习资料《Linux下的进程结构》,进程不但包括程序的指令和数据,而且包括程序计数器和处理器的所有寄存器及存储临时数据的
发表于 08-05 11:05
Linux下的进程结构
进程不但包括程序的指令和数据,而且包括程序计数器和处理器的所有寄存器及存储临时数据的进程堆栈,因此正在执行的进程包括处理器当前的一切活动。 因为Linux是一个多
发表于 05-27 09:24
浅谈多进程多线程的选择
鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似
发表于 08-24 07:38
Linux 2.6进程调度
分析了与Linux 2.6 进程调度密切相关的一些重要数据结构,详细描述了进程调度的时机、调度的策略和调度器的工作流程,并从算法分析和HackBench 测试两个方面对Linux 2.
发表于 06-13 10:13
•11次下载
LINUX 进程源代码分析
LINUX 进程源代码分析
task_struct 数据结构表示进程的数据结构是struct task_struct。task_struct 结构是进程实体的核心,
发表于 02-09 15:13
•16次下载
Linux进程控制编程
7.2 Linux进程控制编程 1.fork() 在Linux中创建一个新进程的惟一方法是使用fork()函数。fork()函数是Linux
发表于 10-18 14:16
•0次下载
如何设置Linux进程的睡眠和唤醒
在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。
发表于 04-23 14:29
•848次阅读
Linux进程权限的分析说明
在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解。但是对进程权限一般知之甚少。本文总结一下linux系统下进程权限问题和现象。
发表于 07-17 10:55
•801次阅读
评论