问题标签 [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.
c++ - waitpid/wexitstatus 返回 0 而不是正确的返回码
我有下面的辅助函数,用于在 posix 系统上执行命令并获取返回值。我曾经使用,但如果应用程序在/有机会完成其工作之前运行并退出,popen
则无法获取应用程序的返回码。popen
popen
pclose
下面的辅助函数创建一个进程分支,用于execvp
运行所需的外部进程,然后父进程waitpid
用于获取返回码。我看到它拒绝运行的奇怪情况。
wait
当使用=调用时true
,waitpid
无论如何都应该返回应用程序的退出代码。但是,我看到stdout
指定返回码不为零的输出,但返回码为零。在常规 shell 中测试外部进程,然后echo
ing$?
返回非零,因此外部进程没有返回正确的代码不是问题。如果有任何帮助,正在运行的外部进程是mount(8)
(是的,我知道我可以使用mount(2)
,但除此之外)。
我提前为代码转储道歉。其中大部分是调试/记录:
请注意,该命令使用正确的参数运行正常,该函数继续运行,没有任何问题,并WIFEXITED
返回TRUE
. 但是,WEXITSTATUS
当它应该返回其他东西时,返回 0。
wexitstatus - 我如何使用 wexitstatus 获得超过 255 的值
我只会说一点英语,所以我希望你能明白我说的话。
我分叉一个子进程,然后在子进程中添加。例如:56+48=104
如果值低于 255 ,我可以使用“wexitstatus(status)”来得到答案。
但是如果值高于256,那就错了!
我能怎么做?
c - WEXITSTATUS(childStatus) 返回 0 但 waitpid 返回 -1
据我所知,如果 waitpid 返回 -1 那么这是错误情况。如何从 WEXITSTATUS(childStatus)中的子进程获得成功(EXIT_SUCCUSS)?
waitpid 中的 childStatus 和 WEXITSTATUS(childStatus) 的返回值有什么区别?一样吗?
c - 通过按位运算在 C 中解析 WEXITSTATUS int-summed 返回码
当涉及到按位数学时,我只是一个新手 - 如果这甚至是正确的术语 - 并且正在寻找一种更好的方法来对 int-summed 返回代码进行逻辑处理(这是各种 Unix 程序的标准)。即返回码可以是1、2、4、8等的任意组合
到目前为止,这是我的代码(片段):
我知道我应该能够使用 AND (&) 之类的按位运算符来执行此操作,但不知道该怎么做。不过,我不太了解按位运算,即if (result & 64)
如果返回码为 128,我是否也能做到这一点?
显然我对二进制数学的理解令人震惊,我从来没有真正在这方面做过代码。只是寻找对正确按位方法的一些说明。
c - 等待函数和 wexitstatus 中的状态值
我在 unix 的系统函数的实现中阅读了这段代码(问题 8.22):
我不明白这里的 if 条件是什么:WEXITSTATUS 返回的状态与等待中的状态不一样吗?如果不是,那么两者有什么区别?
c - 无法让 waitpid() 针对错误情况返回正确的 WEXITSTATUS
我有一个命令和一些输入,当在命令行上运行时会返回一个错误,相关的错误代码为 1:
我正在尝试使用以下方法捕获此错误代码waitpid()
:
我的线程将一直运行perform_foo_function()
,直到不再bar_data
需要处理,或者直到进程由于数据错误而失败:
我的问题是如何捕捉这个过程的错误状态?在调试过程中WEXITSTATUS
,无论我是故意制造错误情况还是提供合法输入,都始终为零。
我对相关的状态代码检查有什么误解waitpid()
,我应该进行哪些更改才能使其正常工作?
跟进
以下代码似乎工作,没有阻塞:
我猜“检查后”waitpid()
调用不会挂起,因为该过程已经在此步骤退出。
c - 如何将浮点类型的状态转换为 WEXITSTATUS
我有下面的代码,但我需要exit(status)
返回一个浮点数但WEXITSTATUS
没有收到浮点数,因为状态必须是 int,请问有什么解决方案?
php - 从 wexitstatus 收到错误的退出代码
我正在使用 PCNTL 在 ubuntu 服务器上多处理 PHP 中的大脚本。
这是代码(简化和注释)
我面临的问题是关于 wexitstatus 返回的值。
为了简单起见,有一个父进程,它必须创建 200 个线程。
他一次创建一个进程,如果实际运行的线程超过 8 个,则等待一个进程完成。
我添加了许多日志,所以我看到一个孩子完成了它的工作。
我看到它在打电话posix_kill($pidChild, 10);
。
我看到信号处理程序被调用signal user 1
(导致exit(0)
)。
我看到父亲醒来,但是当他从 获取返回的代码时wexitstatus
,他看到了代码 3,因此认为孩子出错了,而它已经以代码 0 退出!!。
pid 是好孩子的 pid。
也许我误解了信号是如何工作的......有什么线索吗?
c - c while循环中的fork()和wait()?
我在 c 中有这个小程序,我试图了解它是如何工作的,它是一个简单的 while 循环,它使用fork()
并wait()
在命令行上打印出几行,我已经尽我所能评论了我的想法正在发生
该程序应该打印:
当其中一个子进程返回时i
,父进程是否等待它&j
?这真的让我很困惑,任何帮助将不胜感激。
c - 为什么子进程的最后一行不打印?
编译此代码时,else 的最后一行不打印,我不知道为什么。