gpt4 book ai didi

c - 为什么 waitpid 不等待进程退出?

转载 作者:太空宇宙 更新时间:2023-11-03 23:24:59 25 4
gpt4 key购买 nike

我有这个用 C 编写的简单代码,我的操作系统是 osx:

int main() {
pid_t pid = 1244;
int pid_status;
waitpid(pid, &pid_status, 0);
printf("%i\n",pid_status);
}

1244 是当前运行的 Opera 浏览器的进程号:

Korays-MacBook-Pro:HelloWorld koraytugay$ ps -p 1244
PID TTY TIME CMD
1244 ?? 0:09.19 /Applications/Opera.app/Contents/MacOS/Opera

我期望发生的是当我运行这个程序时,它应该只是等到我关闭 Opera,但我得到的是:

Korays-MacBook-Pro:HelloWorld koraytugay$ ./koko
1798668342
Korays-MacBook-Pro:HelloWorld koraytugay$ ./koko
1637806134
Korays-MacBook-Pro:HelloWorld koraytugay$ ./koko
1707163702

为什么这个程序直接退出,这些不同的数字是什么?

最佳答案

waitpid 只对子进程有效。查看手册页 http://man7.org/linux/man-pages/man2/wait.2.html .

您会发现 waitpid 返回 -1。请检查errno

关于c - 为什么 waitpid 不等待进程退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29545563/

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