[root@ test]$ cat return10.c
#include <stdio.h>
int main(int argc, char *argv[]){
return 10;
}
[root@ test]$ perl -e 'print system("/path_to_return10")'
2560
我期待 10 但 2560 ,为什么?
答案 0 :(得分:6)
在perl(http://perldoc.perl.org/functions/system.html)system
调用的文档中指定:
返回值是由程序返回的程序的退出状态 等电话。要获得实际退出值,请向右移动8(请参阅 下文)。
确实:2560 >> 8 = 10
答案 1 :(得分:6)
请参阅perldoc perlvar中的$?
。
你有10 * 256(返回值= 10)+ 0 * 128(没有核心转储)+ 0(进程没有被信号杀死)。