gpt4 book ai didi

无法使用 waitid() 和 P_PID 进行编译

转载 作者:行者123 更新时间:2023-12-02 18:01:07 26 4
gpt4 key购买 nike

我是 Linux 新手。我正在尝试使用 waitid() 来等待子进程。当我尝试使用 gcc 编译包含以下行的文件时:

id_t cpid = fork();
siginfo_t status;
waitid(P_PID, cpid, &status, WEXITED);

生成了以下错误:

error: ‘P_PID’ undeclared (first use in this function)

我包含了以下库:

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <signal.h>
#include <string.h>
#include <time.h>

我错过了什么吗?

另一个问题是如何使用 WIFSIGNALED()siginfo_t 类型中检索信息?

最佳答案

您需要包含<sys/wait.h>并定义_XOPEN_SOURCE , as documented in the manual .

WIFSIGNALED宏必须与从 wait 获得的整数状态一起使用, waitpidwaitid 。以waitpid为例,状态为 si_status siginfo_t的成员结构。换句话说,您可以使用 WIFSIGNALED(info.si_status) , infosiginfo_t 类型的结构您之前传递给其地址 waitid() .

关于无法使用 waitid() 和 P_PID 进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26380736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com