waitpid函数作用,c wait函数

waitpid函数作用,c wait函数,详解C语言中的wait()函数和waitpid()函数

本文主要介绍C语言中的wait()函数和waitpid()函数。注意它们在打断过程中的不同用法。有需要的朋友可以参考一下。

C wait()函数:结束(中断)进程函数(常用)

头文件:

#包含sys/types . h #包含sys/wait.h

定义功能:

PID _ t wait(int * status);

函数描述:wait()会暂时停止当前流程的执行,直到有信号到达或者子流程结束。如果调用wait()时子流程结束,wait()将立即返回子流程结束状态值。参数status将返回子流程结束状态值,并将尽快返回子流程ID。如果不在乎结束状态值,可以将参数status设置为NULL。有关子流程结束状态值,请参考waitpid。

返回值:如果执行成功,返回子进程ID (PID),如果出现错误,返回-1。失败原因将存储在errno中。

模型

#包含stdlib.h

#包括unistd.h

#包含sys/types.h

#包含sys/wait.h

主()

{

pid _ t pid

int状态,I;

if(fork()==0)

{

printf('这是子进程。pid=%d\n ',getpid());

出口(5);

}

其他

{

睡眠(1);

printf('这是父进程,等待子进程.\ n ';

pid=等待(状态);

i=WEXITSTATUS(状态);

printf('子进程的pid=%d .退出status=^d\n',pid,I);

}

}

执行:

这是子进程。pid=1501

这是父进程,请等待子进程.

子进程的pid=1501,退出状态=5

Language waitpid()函数:中断(结束)进程函数(或者等待子进程的中断)

头文件:

#包含sys/types . h #包含sys/wait.h

定义功能:

pid_t waitpid(pid_t pid,int * status,int options);

函数描述:waitpid()会暂时停止当前进程的执行,直到有信号到达或者子进程结束。如果调用wait()时子流程结束,wait()将立即返回子流程结束状态值。参数status将返回子流程结束状态值,并将尽快返回子流程ID。如果不在乎结束状态值,可以将参数status设置为NULL。参数pid是要等待的子流程id。

1.pid-1等待任何进程组id是pid绝对值的子进程。

2.pid=-1等待任何子进程,相当于wait()。

3.pid=0等待与当前进程具有相同进程组id的任何子进程。

4.pid0等待任何子进程id为pid的子进程。

参数选项可以是0或以下或组合:

WNOHANG:如果没有完成的子进程,立即返回,不要等待。

WUNTRACED:如果子流程进入暂停执行状态,它将立即返回,但结束状态将被忽略。返回后子流程的结束状态会存储在status中,底部有几个宏用来判断结束情况。

WIFEXITED(status):如果子进程正常结束,则为非零值。

WEXITSTATUS(status):获取子进程exit()返回的结束代码。一般在使用这个宏之前,用WIFEXITED来判断是否正常结束。

wif signed(status):如果子进程因信号而结束,则该宏值为真。

WTERMSIG(status):获取被信号停止的子进程的信号代码。一般在使用这个宏之前用WIFSIGNALED来判断。

WIFSTOPPED(status):如果子进程被挂起,则该宏值为true。通常,只有在使用WUNTRACED时才会出现这种情况。

WSTOPSIG(status):获取导致子进程暂停的信号代码。一般用WIFSTOPPED来判断再用这个宏。

返回值:如果执行成功,返回子进程ID (PID),如果出现错误,返回-1。失败原因将存储在errno中。

示例:参考wait()。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • waitpid函数作用,c wait函数,详解C语言中的wait()函数和waitpid()函数
  • ,,javascript SpiderMonkey中的函数序列化如何进行
  • spiderfoot安装,spiderfoot会被对手反扫描
  • PySpider,pyspider官方文档
  • C语言PID,pid控制算法的c语言实现
  • pid控制死区范围,带死区的pid控制方法有何优点
  • pid控制器中微分的作用,pid控制微分方程
  • 微分先行的pid控制算法课程设计,什么是微分先行pid控制
  • 设计pid控制器并设定参数,pid控制器参数设置
  • PID控制器百科,PID控制实现
  • PID控制算法原理,pid 控制算法
  • pid控制中积分控制指什么,数字pid控制器积分项的改进有哪些
  • pid控制器的调节原则,试说明pid控制器的优点
  • 通过进程名查找进程的pid,linux根据程序名查进程
  • 串级控制系统pid怎么调,串级控制pid参数怎么调节
  • 留言与评论(共有 条评论)
       
    验证码: