Linux——进程大汇总:概念、创建进程(函数fork的使用、补充、总结;vfork创建进程)、进程退出、函数

本文详细介绍了Linux进程的相关概念,包括进程与程序的区别、查看进程的方法、进程标识符以及父进程与子进程。重点讲解了fork函数创建进程的过程和应用场景,对比了vfork的差异。还探讨了进程退出的正常和异常情况,父进程如何等待子进程退出以及wait和waitpid函数的使用。此外,文章还详细解析了exec族函数的功能、参数和不同类型的使用示例,如execl、execv等。最后,提到了system和popen函数在进程执行和获取输出中的应用。
摘要由CSDN通过智能技术生成

目录

一、进程相关概念

1、什么是程序,什么是进程,有什么区别?

2、如何查看系统中有哪些进程?

①使用ps指令查看

②使用top指令查看,类似Windows任务管理器(q退出)

3、什么是进程标识符?

4、什么叫父进程,什么叫子进程?

5、C程序的存储空间是如何分配的?

可执行程序包括BSS段、数据段、代码段。

二、创建进程(函数fork的使用及补充)

eg:使用fork函数创建一个进程:pid_t fork(void);

demo2.c

demo3.c

demo4.c

demo5.c:研究fork返回值

demo6.c:返回值两个:父进程返回子进程pid,子进程返回0。

三、进程创建发生了什么事

四、创建新进程的实际应用场景及fork总结

1、fork创建一个子进程的一般目的:

实际应用场景demo8.c:例如:服务器(Socket)在收到一个连接请求时,创建子进程对接

2、fork总结:

五、vfork函数创建进程

1、vfork函数也可以创建进程,与fork不同的是:

①vfork直接使用父进程存储空间,不拷贝,不共享;

②vfork保证子进程先运行,当子进程调用exit退出后,父进程才开始执行。

六、进程退出

1、正常退出5种

2、异常退出3种

七、父进程等待子进程退出

1、为啥要等待子进程退出

通俗来讲:

什么是僵尸进程?

2、等待的相关函数:wait,waitpid函数:

wait,waitpid的区别:

①Status参数:

②参数pid:

③参数options:

demo12.c:wait举例

demo13.c:waitpid举例

3、孤儿进程

demo14.c:变成孤儿进程的父进程代码体现

七、exec族函数

1、exec族函数函数的作用:

2、exec族函数定义:

一、带l的一类exec函数(l表示list),包括execl、execlp、execle,要求将新程序的每个命令行参数都说明为 一个单独的参数。这种参数表以空指针结尾。

        echoarg.c:

        demo15.c:怎么调用其他可执行文件

        demo16.c:调用ls指令

        demo17.c:调用ls -l指令

        有什么用,怎么用: 假如让你用C语言实现一个功能:获取系统的时间。                      如果不会怎么办呢:调用系统date指令。eg:demo18.c:调用date指令

二、带p的一类exec函数,包括execlp、execvp、execvpe,如果参数file中包含/,则就将其视为路径名,否则就按 PATH环境变量,在它所指定的各目录中搜寻可执行文件。举个例子,PATH=/bin:/usr/bin

三、带v不带l的一类exac函数,包括execv、execvp、execve,应先构造一个指向各参数的指针数组,然后将该数组的地址作为这些函数的参数。

四、带e的一类exac函数,包括execle、execvpe,可以传递一个指向环境字符串指针数组的指针。 

八、system函数

与exec的区别

九、popen函数

popen函数在应用中比system函数好的一点在于,前者可以获取到运行的输出结果

头文件:

函数原型:

参数说明:

读取:需要使用fread()来读取popen产生的管道中的内容


一、进程相关概念

1、什么是程序,什么是进程,有什么区别?

①程序是静态的概念,gcc xx.c -o pro,磁盘中生成pro文件,叫做程序。

②进程是程序的一次运行活动,是动态的概念,通俗点意思就是程序跑起来了,系统中就多了一个进程。

2、如何查看系统中有哪些进程?

①使用ps指令查看

实际工作中,配合grep(过滤出需要的信息)来查找程序中是否存在某一个进程。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行不地上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值