zoukankan      html  css  js  c++  java
  • 读书笔记,echo$?得到进程结束状态

    $?是Linucx shell中的一个内置变量,其中保存最近一次运行的进程的返回值。这个返回值有以下三种情况。

    1,程序的main函数运行结束,$?保存main函数的返回值。

    2,程序运行中调用exit函数结束执行,$?中保存exit的参数。

    3,程序异常退出,$?保存异常的出错号。

    #include<stdio.h>

    int main()

    {

    ruturn 5;

    }

    运行该代码后,执行echo ¥?,显示:5

    $?内置变量中的1表示shell运行程序出错,在shell默认的路径找不到指定的程序。所以在编写代码时如果没有出错,则不要用main函数return 1 或者exit(0)这样的写法,以免引起不必要的混乱。

    再看另一段代码

    #inclide<stdio.h>

    int main()

    {

    printf("hello world\n");//没有return 语句

    }

    这时echo $?显示12,即printf函数的返回值,因此有可能echo$?取的就是eax寄存器的值,不过如果是这样,那假设本电脑是多处理器的,运行一个多线程程序,多个线程同时返回,那这时echo $?的返回值又是什么呢?唉,暂时不得而知。。。。

    (文中大部分内容出自《linux c 程序设计大全》吴岳)

  • 相关阅读:
    分解质因数算法
    js 的 Math 对象
    字符串操作
    简化求质数算法
    数值类型小数点后是否可以接零问题
    新博第一篇,思考的重要性与求质数算法
    一、制作屏幕录像
    四、同步线程
    常见问题
    jni数据处理
  • 原文地址:https://www.cnblogs.com/ymy124/p/2310305.html
Copyright © 2011-2022 走看看