perl系统的返回代码是否与$相同?

时间:2014-05-06 07:45:36

标签: perl system exit-code

来自Perl系统()调用的返回值是否始终与$完全相同?将在同一个电话后立即?

是否存在任何内核/ shell /系统故障模式,例如系统甚至无法启动子shell?

(我< m 询问位的编码,返回码(高位),信号和核心转储标志。)

1 个答案:

答案 0 :(得分:0)

  

来自Perl的system()调用的返回值是否始终与$完全相同?会在同一个电话会议后立即发生吗?

是的,它们都来自Unix系统调用wait()

根据system

  

返回值是wait调用返回的程序的退出状态。

perlvar

  

$?
  这只是传统的Unix wait()系统调用返回的16位状态字(或者看起来像是这样)。


注意:根据wait(2)的原型,pid_t wait(int *stat_loc),显然,system的返回值不是wait(2)的返回值,这是一个进程ID。它是wait(2)通过其第一个参数返回的子进程退出状态,因为C函数只能返回一个值,如果它想要返回多个值,它需要将它们包装在一个结构中并返回一个该结构类型的值,或通过指针类型的参数。