问题标签 [wexitstatus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2661 浏览

c++ - waitpid/wexitstatus 返回 0 而不是正确的返回码

我有下面的辅助函数,用于在 posix 系统上执行命令并获取返回值。我曾经使用,但如果应用程序在/有机会完成其工作之前运行并退出,popen则无法获取应用程序的返回码。popenpopenpclose

下面的辅助函数创建一个进程分支,用于execvp运行所需的外部进程,然后父进程waitpid用于获取返回码。我看到它拒绝运行的奇怪情况。

wait当使用=调用时truewaitpid无论如何都应该返回应用程序的退出代码。但是,我看到stdout指定返回码不为零的输出,但返回码为零。在常规 shell 中测试外部进程,然后echoing$?返回非零,因此外部进程没有返回正确的代码不是问题。如果有任何帮助,正在运行的外部进程是mount(8)(是的,我知道我可以使用mount(2),但除此之外)。

我提前为代码转储道歉。其中大部分是调试/记录:

请注意,该命令使用正确的参数运行正常,该函数继续运行,没有任何问题,并WIFEXITED返回TRUE. 但是,WEXITSTATUS当它应该返回其他东西时,返回 0。

0 投票
1 回答
1632 浏览

wexitstatus - 我如何使用 wexitstatus 获得超过 255 的值

我只会说一点英语,所以我希望你能明白我说的话。

我分叉一个子进程,然后在子进程中添加。例如:56+48=104

如果值低于 255 ,我可以使用“wexitstatus(status)”来得到答案。

但是如果值高于256,那就错了!

我能怎么做?

0 投票
2 回答
4340 浏览

c - WEXITSTATUS(childStatus) 返回 0 但 waitpid 返回 -1

据我所知,如果 waitpid 返回 -1 那么这是错误情况。如何从 WEXITSTATUS(childStatus)中的子进程获得成功(EXIT_SUCCUSS)?

waitpid 中的 childStatus 和 WEXITSTATUS(childStatus) 的返回值有什么区别?一样吗?

0 投票
1 回答
247 浏览

c - 通过按位运算在 C 中解析 WEXITSTATUS int-summed 返回码

当涉及到按位数学时,我只是一个新手 - 如果这甚至是正确的术语 - 并且正在寻找一种更好的方法来对 int-summed 返回代码进行逻辑处理(这是各种 Unix 程序的标准)。即返回码可以是1、2、4、8等的任意组合

到目前为止,这是我的代码(片段):

我知道我应该能够使用 AND (&) 之类的按位运算符来执行此操作,但不知道该怎么做。不过,我不太了解按位运算,即if (result & 64)如果返回码为 128,我是否也能做到这一点?

显然我对二进制数学的理解令人震惊,我从来没有真正在这方面做过代码。只是寻找对正确按位方法的一些说明。

0 投票
1 回答
2315 浏览

c - 等待函数和 wexitstatus 中的状态值

我在 unix 的系统函数的实现中阅读了这段代码(问题 8.22):

我不明白这里的 if 条件是什么:WEXITSTATUS 返回的状态与等待中的状态不一样吗?如果不是,那么两者有什么区别?

0 投票
1 回答
1192 浏览

c - 无法让 waitpid() 针对错误情况返回正确的 WEXITSTATUS

我有一个命令和一些输入,当在命令行上运行时会返回一个错误,相关的错误代码为 1:

我正在尝试使用以下方法捕获此错误代码waitpid()

我的线程将一直运行perform_foo_function(),直到不再bar_data需要处理,或者直到进程由于数据错误而失败:

我的问题是如何捕捉这个过程的错误状态?在调试过程中WEXITSTATUS,无论我是故意制造错误情况还是提供合法输入,都始终为零。

我对相关的状态代码检查有什么误解waitpid(),我应该进行哪些更改才能使其正常工作?

跟进

以下代码似乎工作,没有阻塞:

我猜“检查后”waitpid()调用不会挂起,因为该过程已经在此步骤退出。

0 投票
1 回答
131 浏览

c - 如何将浮点类型的状态转换为 WEXITSTATUS

我有下面的代码,但我需要exit(status)返回一个浮点数但WEXITSTATUS没有收到浮点数,因为状态必须是 int,请问有什么解决方案?

0 投票
1 回答
406 浏览

php - 从 wexitstatus 收到错误的退出代码

我正在使用 PCNTL 在 ubuntu 服务器上多处理 PHP 中的大脚本。
这是代码(简化和注释)

我面临的问题是关于 wexitstatus 返回的值。
为了简单起见,有一个父进程,它必须创建 200 个线程。
他一次创建一个进程,如果实际运行的线程超过 8 个,则等待一个进程完成。
我添加了许多日志,所以我看到一个孩子完成了它的工作。
我看到它在打电话posix_kill($pidChild, 10);
我看到信号处理程序被调用signal user 1(导致exit(0))。
我看到父亲醒来,但是当他从 获取返回的代码时wexitstatus,他看到了代码 3,因此认为孩子出错了,而它已经以代码 0 退出!!。
pid 是好孩子的 pid。
也许我误解了信号是如何工作的......有什么线索吗?

0 投票
1 回答
9032 浏览

c - c while循环中的fork()和wait()?

我在 c 中有这个小程序,我试图了解它是如何工作的,它是一个简单的 while 循环,它使用fork()wait()在命令行上打印出几行,我已经尽我所能评论了我的想法正在发生

该程序应该打印:

当其中一个子进程返回时i,父进程是否等待它&j?这真的让我很困惑,任何帮助将不胜感激。

0 投票
1 回答
61 浏览

c - 为什么子进程的最后一行不打印?

编译此代码时,else 的最后一行不打印,我不知道为什么。