int xsystem(const char *cmd)
{
    int err;

err = system(cmd);

if (err == -1) {
    fprintf(stderr, "%s: ERROR: fork failed before execution: `%s'\n",
        __FUNCTION__, cmd);
    return -1;
    }

if (WIFSIGNALED(err)) {
    fprintf(stderr, "%s: ERROR: Child process died due to signal %d: `%s'\n",
        __FUNCTION__, WTERMSIG(err), cmd);
    return -1;
    }

if (WIFEXITED(err)) {
    /* Normal child exit */
    return WEXITSTATUS(err);
    }

fprintf(stderr, "%s: ERROR: Received unintelligible return value from system: %d",
        __FUNCTION__, err);
    return -1;
}

子进程的结束状态返回后存于 status,底下有几个宏可判别结束情况:
WIFEXITED(status)如果若为正常结束子进程返回的状态,则为真;对于这种情况可执行WEXITSTATUS(status),取子进程传给exit或_eixt的低8位。
WEXITSTATUS(status)取得子进程 exit()返回的结束代码,一般会先用 WIFEXITED 来判断是否正常结束才能使用此宏。
WIFSIGNALED(status)若为异常结束子进程返回的状态,则为真;对于这种情况可执行WTERMSIG(status),取使子进程结束的信号编号。
 
 
 
 
nRet = system(sCommand);
 //WIFEXITED(stat)' 如果子进程正常退出则返回非;`WEXITSTATUS(stat)' 子进程返回的退出码  if (!((ZX_SYS_NO_ERROR != WIFEXITED(nRet)) && (ZX_SYS_NO_ERROR == WEXITSTATUS(nRet))))
 {   return -1;
 }
  测试的返回值为: 
 WIFEXITED(nRet)[[[1]]]
  WEXITSTATUS(nRet)[[[0]]]  rolesrv -k 这个命令执行成功的返回值为:0   
///////////////////////////////////////////////////////////////////////////////
system返回值描述 
-1 创建失败或者程序的退出状态无法获得,也就是fork或者waitpid失败 -----这个可能资源问题或者系统限制导致创建子进程失败。 127 执行程序失败,也就是exec失败------------------------------------执行脚本存在问题,例如程序无权限或者不存在。  
当前专家建议:
             请检查主机资源是否足够或者线程数超过系统设置最大阀值:
 
    修改后:
         返回为-1,请参考返回的系统错误码和错误信息,检查主机设置最大进程数和系统资源是否不足。
         返回为127,请检查执行脚本是否存在问题,例如没有权限或者执行程序不存在等
 
 
 
 

system返回值校验的更多相关文章

  1. linux c system返回值问题总结

    先看例子 #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> #include <sys ...

  2. python os.system()返回值判断

    最近遇到os.system()执行系统命令的情况,上网搜集了一下资料,整理如下,以备不时之需,同时也希望能帮到某些人. 一.python中的 os.system(cmd)的返回值与linux命令返回值 ...

  3. java自动化测试-json返回值校验

    参考: https://blog.csdn.net/xkhgnc_6666/article/details/50250283 实现举例:

  4. [转]system函数返回值探究

    对于system这个函数的功能早就有一定了解,读书期间,就学习了UNIX系统编程这本书,后来买了APUE.我这个人总是有好读书不求甚解的毛病.对于system函数只知其一,不知其二.后来被人问起相关的 ...

  5. Linux system函数返回值

    例: status = system("./test.sh"); 1.先统一两个说法: (1)system返回值:指调用system函数后的返回值,比如上例中status为syst ...

  6. js或者ext js获取返回值

      由于前台业务需要在判断中发起ajax到后台,根据返回值校验是否通过 代码如下 关键点在于要将async关闭 设置成同步,这样才能接收到要返回的flag                       ...

  7. SpringMVC 拦截返回值,并自定义

    有关取代mvc:annotation-driven使用自定义配置请看: http://blog.csdn.net/cml_blog/article/details/45222431 1.在项目开发中, ...

  8. 2. Bean Validation声明式校验方法的参数、返回值

    你必须非常努力,才能干起来毫不费力.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众 ...

  9. [Python陷阱]os.system调用shell脚本获取返回值

    当前有shell个脚本/tmp/test.sh,内容如下: #!/bin/bashexit 11 使用Python的os.system调用,获取返回值是: >>> ret=os.sy ...

随机推荐

  1. 运用jquery做打印和导出操作

    我最近接手的项目中经常让做出打印和导出统计图和表格 首先说打印,打印如果用echarts做出来的图表,打印的时候,要借助jquery的打印插件. 打印插件: <script src=" ...

  2. POJ poj 2155 Matrix

    题目链接[http://poj.org/problem?id=2155] /* poj 2155 Matrix 题意:矩阵加减,单点求和 二维线段树,矩阵加减,单点求和. */ using names ...

  3. bzoj 1503: [NOI2004]郁闷的出纳员 -- 权值线段树

    1503: [NOI2004]郁闷的出纳员 Time Limit: 5 Sec  Memory Limit: 64 MB Description OIER公司是一家大型专业化软件公司,有着数以万计的员 ...

  4. ACM -- 算法小结(五)字符串算法之Sunday算法

    1. Sunday算法是Daniel M.Sunday于1990年提出的一种比BM算法搜索速度更快的算法. 2. Sunday算法其实思想跟BM算法很相似,只不过Sunday算法是从前往后匹配, 在匹 ...

  5. ES查询

    (1)简单查询 1)根据id查询 get http://39.98.224.229:9200/company/data_info/AWnNz-AuWR2RitGomoXH 2)根据条件查询 查询所有数 ...

  6. [转] Android 命名规范 (提高代码可以读性)

    Android命名规范编码习惯 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的 审查和修改过程中就会浪费 ...

  7. IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) B. Bear and Compressing 暴力

    B. Bear and Compressing 题目连接: http://www.codeforces.com/contest/653/problem/B Description Limak is a ...

  8. PAT甲级1021. Deepest Root

    PAT甲级1021. Deepest Root 题意: 连接和非循环的图可以被认为是一棵树.树的高度取决于所选的根.现在你应该找到导致最高树的根.这样的根称为最深根. 输入规格: 每个输入文件包含一个 ...

  9. hihocoder 1522 : F1 Score

    题目链接   时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和他的小伙伴们一起写了很多代码.时间一久有些代码究竟是不是自己写的,小Hi也分辨不出来了. 于是他实现 ...

  10. 更新teaching中fdSubjectID为null的老数据

    UPDATE wkwke.tbTeachingV3 teaching SET teaching.fdSubjectID = (                    SELECT fdValue FR ...