IO进程--进程回收函数

进程回收:pid_t wait(int*status) ;

功能:回收进程资源,阻塞函数,等待子进程退出后结束阻塞;

参数:子进程退出状态(不接受子进程状态设为 NULL)

返回值:成功“回收子进程的进程号”         失败“-1”

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
int main{
pid_t pid; 
pid=fork();//创建子进程
if(pid<0)
{
perror("fork err");
return -1;
}//类似判断有没有开辟成功

else if(pid==0)
{printf("in child"); while(1);}// 子进程

else
{wait NULL; printf("in parent");return 0;}//父进程
}

pit_t waitpid(pid_t进程号,int*子进程退出状态,阻塞或者非阻塞) 

参数:

进程号:>0指定子进程进程号;=-1任意子进程;=0;<-1;

子进程退出状态:NULL

阻塞或非阻塞:"0'阻塞     “WNOHANG”非阻塞

返回值:正常:结束子进程进程号

               非阻塞:子进程没结束时“0”;失败“-1”

#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
int main
{
pid_t pid;
pid=fork();//创建子进程
if(pid<0)
{perror("pid err");return -1;}
else if(pid==0)//子进程
{sleep(2);printf(“in the child\n”);}
else
{while(1){if(waitpid(-1,NULL,WNOHANG)!=0)
break;}
printf("in parent");
}
}

轮询(非阻塞):循环执行,一直占CPU,消耗CPU资源

阻塞:实时性差

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值