来自Perl系统()调用的返回值是否始终与$完全相同?将在同一个电话后立即?
是否存在任何内核/ shell /系统故障模式,例如系统甚至无法启动子shell?
(我< m 不询问位的编码,返回码(高位),信号和核心转储标志。)
答案 0 :(得分:0)
来自Perl的system()调用的返回值是否始终与$完全相同?会在同一个电话会议后立即发生吗?
是的,它们都来自Unix系统调用wait()
。
根据system
:
返回值是
wait
调用返回的程序的退出状态。
和perlvar
:
$?
这只是传统的Unixwait()
系统调用返回的16位状态字(或者看起来像是这样)。
注意:根据wait(2)
的原型,pid_t wait(int *stat_loc)
,显然,system
的返回值不是wait(2)
的返回值,这是一个进程ID。它是wait(2)
通过其第一个参数返回的子进程退出状态,因为C函数只能返回一个值,如果它想要返回多个值,它需要将它们包装在一个结构中并返回一个该结构类型的值,或通过指针类型的参数。