当前位置: 技术问答>linux和unix
echo $?命令取的是进程结束后的eax的值吗?
来源: 互联网 发布时间:2017-01-28
本文导语: 先看一点代码 #include { printf("hello worldn"); } 执行后该程序后,用echo $?命令吸显示12(即printf的返回值) 那echo $?命令取的是进程结束后的eax的值吗? 如果是,那要是我电脑有几个处理器,然后运行多线程什么的,没个线...
先看一点代码
#include
{
printf("hello worldn");
}
执行后该程序后,用echo $?命令吸显示12(即printf的返回值)
那echo $?命令取的是进程结束后的eax的值吗?
如果是,那要是我电脑有几个处理器,然后运行多线程什么的,没个线程都同时返回一个值,那这时候echo $?会返回什么呢?
|
$?是当前shell运行的程序获得的程序的返回值. 在C中如果用exit -1的话 $?应该是254 (255-1得到的)
只有当程序退出时 shell 才捕捉返回值. 多线程退出了还是回到父进程而已.并没返回给系统
只有当程序退出时 shell 才捕捉返回值. 多线程退出了还是回到父进程而已.并没返回给系统
|
echo $?显示的上一条命令的返回值。这个值是保存在Shell程序的变量里的。楼主记不记得Shell程序是你所运行的程序的父进程?
楼主没有写return XX; 所以printf的返回值就成了程序的返回值,然后“hello worldn”恰好是十二个字符。
楼主没有写return XX; 所以printf的返回值就成了程序的返回值,然后“hello worldn”恰好是十二个字符。