c程序 中wait:什么意思

发布网友 发布时间:2022-04-22 23:04

我来回答

3个回答

热心网友 时间:2023-10-08 15:42

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


相关函数:waitpid, fork

头文件:#include <sys/types.h>    #include <sys/wait.h>

定义函数:pid_t wait (int * status);

函数说明:wait()会暂时停止目前进程的执行, 直到有信号来到或子进程结束. 如果在调用wait()时子进程已经结束, 则wait()会立即返回子进程结束状态值. 子进程的结束状态值会由参数status 返回, 而子进程的进程识别码也会一快返回. 如果不在意结束状态值, 则参数 status 可以设成NULL. 子进程的结束状态值请参考waitpid().

返回值:如果执行成功则返回子进程识别码(PID), 如果有错误发生则返回-1. 失败原因存于errno 中.

范例

#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
main()
{
    pid_t pid;
    int status, i;
    if(fork() == 0)
    {
        printf("This is the child process. pid =%d\n", getpid());
        exit(5);
     }
    else
    {
        sleep(1);
        printf("This is the parent process, wait for child...\n";
        pid = wait(&status);
        i = WEXITSTATUS(status);
        printf("child's pid =%d . exit status=^d\n", pid, i);
    }
}


执行:
This is the child process. pid=1501
This is the parent process, wait for child...
child's pid =1501, exit status =5

追问图中是一个“:”啊,

热心网友 时间:2023-10-08 15:42

这是个标号,比如:
Wait: ....
....
if ( xxx ) goto Wait; //转向Wait标号后面的语句执行

热心网友 时间:2023-10-08 15:43

中断函数:
wait()会暂时停止目前进程的执行, 直到有信号来到或子进程结束. 如果在调用wait()时子进程已经结束, 则wait()会立即返回子进程结束状态值. 子进程的结束状态值会由参数status 返回, 而子进程的进程识别码也会一快返回. 如果不在意结束状态值, 则参数 status 可以设成NULL. 子进程的结束状态值请参考waitpid().

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com