gpt4 book ai didi

windows - 是否可以使用 perl 处理退出代码 > 255?

转载 作者:可可西里 更新时间:2023-11-01 13:51:34 26 4
gpt4 key购买 nike

首先,找到一些关于退出代码的背景 in perl ( also here ) 和 on Windows .

现在 - 当我从 perl 脚本执行另一个进程时(我对方法持开放态度,qx/open/system/exec/IPC::Run 等)在 Windows 上:

是否可以捕获 0- 255 范围之外的退出代码?

在 Windows 上,一个进程可以返回一个完整的(带符号的)32 位退出代码,返回 0x8...0... 的情况并不少见,也就是说,一些 COM 错误代码或类似的东西。

最佳答案

是的,Win32::Process可以返回完整签名的 32 位退出代码。使用 GetExitCode 方法。但这有点棘手,因为返回值不是退出代码(它是 Windows GetExitCodeProcess 函数的返回值,表示函数成功或失败)。退出代码存储在您传递给方法的变量中。

use Win32::Process;
use Win32;

sub ErrorReport{
print Win32::FormatMessage( Win32::GetLastError() );
}

my $ProcessObj;
Win32::Process::Create($ProcessObj,
"C:\\winnt\\system32\\notepad.exe",
"notepad temp.txt",
0,
NORMAL_PRIORITY_CLASS,
".") or die ErrorReport();

$ProcessObj->Wait(INFINITE);
my $exitCode;
$ProcessObj->GetExitCode($exitCode) or die ErrorReport();

关于windows - 是否可以使用 perl 处理退出代码 > 255?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6786812/

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