linux 进程操作

本文介绍了Linux下的进程操作,包括fork()和vfork()创建进程,进程标识符,进程退出的正常与异常情况,以及等待进程的wait()和waitpid()函数。此外,还讲解了孤儿进程、init进程的角色,以及exec族函数用于执行可执行文件的细节。
摘要由CSDN通过智能技术生成

进程包含创建进程,等待进程,进程标识符,进程退出

创建进程 :fork()函数创建进程,使用成功后fork返回两次,返回值为0的时候是子进程,返回值大于0是父进程,返回值大于0的时候返回值等于子进程的pid号,调用失败返回-1。

用getpid();获取当前进程的id号,getppid()获取父进程的进程id。

如果A进程创建了B进程,那么A是B的父进程,B是A的子进程。

pid=0:称为交换进程  作用 进程调度。 pid=1 : init进程 作用系统初始化。

fork创建进程之后代码段子夫共享,就是把父进程的代码拷贝一份给子进程。如果改动数据子父数据不一样,fork以后父进程和子进程争抢运行。

vfork也可以创建进程和fork的区别是:

vfork直接使用父进程的储存空间,不拷贝。

vfork保证子进程先运行,当子进程调用函数退出以后,父进程才运行。

进程退出分为异常退出和正常退出

正常退出是调用函数 return exit 等属于正常退出。

异常退出调用abort或当进程收到某些信号是如ctrl+c进程异常退出。

等待进程

需要注意 子进程退出状态不被收集,会变成僵尸进程,父进程等待子进程退出并收集子进程退出状态。

等待进程函数 pit_t wait(int *status); status是需要传递的参数 。非空:子进程退出状态放到他所指定的地址空间。 空:不关心退出状态。

收集退出状态宏 WEXITSTATUS(&status);wait();返回一个状态码,解析状态码用宏解析。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值