C和Perl中的system()有什么区别?

时间:2009-12-04 05:28:23

标签: c perl process system

system()函数将从C和Perl脚本启动一个新进程。

在错误代码表示方面,C中的system()和Perl脚本调用的进程之间究竟有什么区别?

1 个答案:

答案 0 :(得分:8)

进行了一些研究:

  

返回值是退出状态   等待返回的程序   呼叫。要获得实际退出值,   向右移八(见下文)。看到   也是“执行”。这不是你想要的   用来捕获a的输出   命令,你应该使用   只是反叛或qx //,如上所述   在perlop中的“STRING”返回值   -1表示无法启动   程序或等待错误(2)   系统调用(检查$!for   原因)。

wait的文档说:

  

就像wait(2)系统调用一样   在你的系统上:它等待一个孩子   进程终止并返回   已故过程的pid,如果是-1,则为-1   没有子进程。该   状态以$返回?和   $ {^ CHILD_ERROR_NATIVE}。注意一个   返回值-1可能意味着   正在进行子进程   自动收割,如中所述   perlipc。


来源:这取自perldoc。这是Perl中的tutorial on system