linux c 进程控制编程

pid_t pid;

pid = getpid()获取当前进程ID

pid = getppid()获取父进程ID

fork和vfork:

pid_t vfork(void)
子进程和父进程共享地址空间,一定是子进程先进行,而且要等子进程进行完在进行父进程。一般子进程里要加上指定的
退出方式 比如exit(1)。
pid_t 是vfork的返回值类型,

区别: fork是子进程拷贝父进程,vfork是子进程和父进程共享地址空间 ,fork没有指定的执行先后顺序  , vfork先进行父进程

既然vfork是共享地址空间那么为什么还要创建两个进程呢?
vfork作用:启动一个毫不相关的进程,父进程和子进程的进程号相差1,其他没什么关联,

pwd: 查看绝对路径
execl  最后一定要以NULL结束 进程结束后自己自动退出

system

pid_t wait(int * status)

子进程是父进程创建的 ,

孤儿进程:父进程提前结束,只有子进程在跑
僵尸进程:子进程结束了,父进程没有及时去回收子进程所占用的资源资源
为了防止僵尸进程 就开始用wait
wait(&status)一般放在父进程里。
作用 :1,等待子进程结束(阻塞)2 回收子进程资源

宏函数:

WIFEXITED:检查子进程是否正常退出

if(WIFEXITED(status))
{
    printf (“正常退出 %d ”WEXITSTATUS(status));
}

WEXITSTATUS:获取子进程退出状态

pid_t waitpid(pid_t pid,int *status,int options)
pid 等待指定的子进程
options 一般写0就行了
区别:wait 等待任意一个子进程结束,就结束等待
      waitpid 等待指定的子进程,
exit 用于终止进程,一般就用exit就行了
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值