exitCode 属性
当进程完成时,一个返回进程退出码的 Future
。
对于使用 ProcessStartMode.detached 或 ProcessStartMode.detachedWithStdio 运行的进程,退出码不可用,并且如果使用该 getter,将抛出 StateError。
退出码的处理是平台特定的。
在 Linux 和 OS X 上,正常退出码将在 [0..255]
范围内是正值。如果进程因信号而终止,则退出码将在 [-255..-1]
范围内是负值,其中退出码的绝对值是信号号。例如,如果一个进程因段错误而崩溃,则退出码将是 -11,因为 SIGSEGV 信号的号码是 11。
在 Windows 上,进程可以报告任何 32 位值作为退出码。在返回退出码时,此退出码将转换为有符号值。一些特殊值用于报告由于某些系统事件而终止。例如,如果进程因访问违规而崩溃,则 32 位退出码为 0xc0000005
,它将返回为负数 -1073741819
。要获取原始 32 位值,请使用 (0x100000000 + exitCode) & 0xffffffff
。
无法保证当返回的 future 完成时,stdout 和 stderr 已完成报告进程的缓冲输出。要确保所有输出都已捕获,请等待流上的 done 事件。
实现
Future<int> get exitCode;