> 8"位-6ren"> > 8"位-我在 Perl 脚本的很多地方都看到过这个: system("binary"); $exit_code = ($? >> 8) exit($exit_code) 我为什么要使用这个?有没有替代方法? -6ren">
gpt4 book ai didi

perl - 为什么使用Perl系统函数执行命令时移位 "$? >> 8"位

转载 作者:行者123 更新时间:2023-12-01 00:41:33 24 4
gpt4 key购买 nike

我在 Perl 脚本的很多地方都看到过这个:

system("binary");
$exit_code = ($? >> 8)
exit($exit_code)
  • 我为什么要使用这个?有没有替代方法?
  • 我在 system(binary) 中调用了一些二进制文件我在 C++ 中创建的,它会做一些事情,如果失败,它会给出 assert .当我重新启动 Linux 机器时,发生的事情失败了,我的二进制文件生成 assert正如预期的那样。但是在我调用它的 Perl 端,它抛出一个 134错误代码,在 134 >> 8 之后, 变成 0 .最终它使我的失败操作成功(我不想要)。
  • 最佳答案

    perldoc -f system片段:

    The return value is the exit status of the program as returned by the wait call. To get the actual exit value divide by 256.

    You can check all the failure possibilities by inspecting $? like this:

    $exit_value  = $? >> 8;
    $signal_num = $? & 127;
    $dumped_core = $? & 128;

    关于perl - 为什么使用Perl系统函数执行命令时移位 "$? >> 8"位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36007390/

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