C 库函数 system/WIFEXITED/WEXITSTATUS

C 库函数 system/WIFEXITED/WEXITSTATUS文章目录描述声明参数返回值实例 WIFEXITED WEXITSTATUS 函数 systerm 两层含义函数实例详解解释参考资料描述 C 库函数 intsystem constchar command 把 command 指定的命令名称或程序名称传给要被命令处理器执行的主机环境 并在命令完成后返回 声明下面是 system 函数的声明 include

描述

C 库函数 int system(const char *command) 把 command 指定的命令名称或程序名称传给要被命令处理器执行的主机环境,并在命令完成后返回。

声明

下面是 system() 函数的声明。

#include  
     int system(const char *command) 

参数

command – 包含被请求变量名称的 C 字符串。

返回值

如果发生错误,则返回值为 -1,否则返回命令的状态。

实例

#include  
     #include  
     #include 
     int main () { 
    char command[50]; strcpy( command, "ls -l" ); system(command); return(0); } 

WIFEXITED/WEXITSTATUS函数

systerm两层含义

1、正确退出后。还需要再判断,操作成功或者操作失败。
2、错误退出。

函数实例

#include  
      #include  
      #include  
      #include  
      int main() { 
    pid_t status; status = system("./test.sh"); if (-1 == status) { 
    printf("system error!"); } else { 
    printf("exit status value = [0x%x]\n", status); if (WIFEXITED(status)) //正确退出 { 
    if (0 == WEXITSTATUS(status)) //操作成功 { 
    printf("run shell script successfully.\n"); } else //操作失败 { 
    printf("run shell script fail, script exit code: %d\n", WEXITSTATUS(status)); } } else //错误退出 { 
    printf("exit status = [%d]\n", WEXITSTATUS(status)); } } return 0; } 

详解解释

1、先统一两个说法:

2、如何正确判断test.sh是否正确执行?

都错!(仅仅判断status是否==0?或者仅判断status是否!=-1? )

3、man中对于system的说明

4、system函数对返回值的处理。

阶段1:

创建子进程等准备工作。如果失败,返回-1。

阶段2:

阶段3:

备注1:

只要能够调用到/bin/sh,并且执行shell过程中没有被其他信号异常中断,都算正常结束。

比如:

参考资料

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209762.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:28
下一篇 2026年3月19日 上午8:29


相关推荐

  • Java删除文件(delete file in java)[通俗易懂]

    Java删除文件(delete file in java)[通俗易懂]Java中,可用File.delete()删除一个文件,调用该方法后将返回一个布尔类型的值,true表示删除成功,false则表示删除失败。

    2022年5月26日
    35
  • 初体验三星手机系统Bada应用开发

    初体验三星手机系统Bada应用开发

    2021年8月6日
    70
  • java测试面试问题_struts2面试题

    java测试面试问题_struts2面试题Javashiro面试题1、简单介绍一下Shiro框架?ApacheShiro是Java的一个安全框架。使用Shiro可以非常容易的开发出足够好的应用。其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以帮助我们完成功能:认证、授权、加密、会话管理、与Web集成、缓存等。三个核心组件:Subject,SecurityManager和Realms。●Subject:即“当…

    2022年10月14日
    4
  • 推荐两款程序员必备的画图神器

    缘起最近经常有伙伴问我,作为程序员,有没有好的画图工具推荐,领导说Microsoft Visio画图工具很强,让我们使用,但是我就是用的不习惯。还有没有其他高端的牛逼的,容易上手,一用就爽的画图工具么。针对这么个问题,我其实也是经验不足,Microsoft Visio我也用过,安装包大,还要破解,用的不多,还买个正版,我的脑子还没瓦塌,我是不会买的。那么趁着周末给大家分享两款好用的画图工具,作为程序员还是经常需要画一画图的,你应该能明白我说的画图指的是什么,我也就不过多的强调了。还是强调下吧:1、

    2022年3月1日
    58
  • 决策树原理简介[通俗易懂]

    决策树原理简介[通俗易懂]基于决策树(DT)的算法如RF、GBDT在各种工业场景有着广泛的应用,了解决策树基础算法非常重要,下面我们就对于决策树算法做一下总结决策树分类器基本思想决策树是一种基于分治法的分类器。假设我们有若干个样本点,把它们放在一个节点内,按照最原始的方法对数据做分类,我们可以对节点内部的样本标签做统计,每一个新的样本都可以归为标签的众数(数量最多的标签);当然,这个方法太粗暴没有实用价值,那么我们…

    2025年10月4日
    4
  • 使用vs2010生成SQL Server 随机数据

    使用vs2010生成SQL Server 随机数据

    2021年11月24日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号