system函数,WIFEXITED和WEXITSTATUS

system函数,WIFEXITED和WEXITSTATUS1,在程序中,用exit来设置进程的退出值时,虽然该函数的参数类型为int型,但再父进程中只能取到其值的低8位.所以用exit返回值时,高于255的值是没有意义的.2,对于system函数,返回值是由两部分组成的,低8位值表示所执行的脚本在执行过程中所接收到的信号值,其余的位表示的脚本exit退出时所设置的值,即脚本内exit退出是的值的低8位,在system返回值的低9-1

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1,在程序中,用exit来设置进程的退出值时,虽然该函数的参数类型为int型,但再父进程中只能取到其值的低8位.所以用exit返回值时,高于255的值是没有意义的.

2,对于system函数,返回值是由两部分组成的,低8位值表示所执行的脚本在执行过程中所接收到的信号值,其余的位表示的脚本exit退出时所设置的值,

即脚本内exit退出是的值的低8位,在system返回值的低9-16位.

原文:http://zhangwenxin82.blog.163.com/blog/static/1145959562010323103241387/

包含文件
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
先写一个被调用的函数
==================================
#include <iostream>
int main()
{

printf(“Return 10.\n”);
return 10;
}
==================================
编译后生成一个”rt”的可执行文件
运行结果
==================================
Return 10.
==================================
再写一个调用system的程序
==================================
#include <stdio.h>;
#include <stdlib.h>;
#include <sys/wait.h>;
#include <sys/types.h>;

int main()
{

pid_t status ;

int errno = 0 ;
status = system(“./rt”) ;

printf(“wifexited(status):%d\n”,WIFEXITED(status));
printf(“WEXITSTATUS(status):%d\n”,WEXITSTATUS(status));
if (status == -1)
printf(“system error!”) ;

if (WIFEXITED(status)){

printf(“cp exit normal![%d]\n”, errno) ;
printf(“exit staus = [%X]\n”, WEXITSTATUS(status)) ;
}else
printf(“cp exit illegal![%d]\n”, errno) ;
}
~
[tiantao@probe sys_test]$ cat sys_test.cpp
#include <stdio.h>;
#include <stdlib.h>;
#include <sys/wait.h>;
#include <sys/types.h>;

int main()
{

pid_t status ;

int errno = 0 ;
status = system(“./rt”) ;

printf(“wifexited(status):%d\n”,WIFEXITED(status));
printf(“WEXITSTATUS(status):%d\n”,WEXITSTATUS(status));
if (status == -1)
printf(“system error!”) ;

if (WIFEXITED(status)){

printf(“cp exit normal![%d]\n”, errno) ;
printf(“exit staus = [%X]\n”, WEXITSTATUS(status)) ;
}else
printf(“cp exit illegal![%d]\n”, errno) ;
}

==================================
编译后运行结果
==================================
Return 10.
wifexited(status):1
WEXITSTATUS(status):10
cp exit normal![0]
exit staus = [A]
==================================
可以看到:
WEXITSTATUS(status)可以得到调用程序的返回值。

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

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

(0)
上一篇 2025年6月21日 上午8:15
下一篇 2025年6月21日 上午8:43


相关推荐

  • REST风格详细介绍

    REST风格详细介绍REST 风格 restful 风格详细描述 springboot 中建议使用此风格编写

    2026年3月16日
    1
  • Java链表分割_java中有没有写好的单链表

    Java链表分割_java中有没有写好的单链表描述:现有一链表的头指针ListNode*pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。/*publicclassListNode{intval;ListNodenext=null;ListNode(intval){this.val=val;}}*/publicclassPartition{publicListNo

    2022年5月3日
    46
  • Design Pattern Command 命令设计模式

    Design Pattern Command 命令设计模式

    2022年1月10日
    39
  • Verilog读写文件

    Verilog读写文件一.读写文件相关的系统任务  在进行FPGA模块的开发过程中,常常需要对数据的处理过程进行行为仿真,以验证FPGA的功能逻辑是否正确,因此需要将FPGA行为仿真的结果与MATLAB或C/C++的处理结果进行对比验证。但需要对比的数据量比较大时,将输入输出结果数据存入文件进行对比是非常常用的方法。  Verilog中读写文件常用到的系统任务主要有以下几个:1.文件打开、关闭与定位操作:$fo…

    2022年5月25日
    626
  • C# CultureInfo.InvariantCulture

    C# CultureInfo.InvariantCulture今天在写代码的过程中发现了一个有意思的问题,我在写了一个日期格式转化的时候发现不同电脑的运行结果不一致。代码如下stringstr=this.tbTime.Text;if(string.IsNullOrEmpty(this.tbTime.Text)){return;…

    2022年6月19日
    28
  • halcon联合C#_halcon调用自己的模型

    halcon联合C#_halcon调用自己的模型20210221版最新C#联合halcon开发框架源码,傻瓜式拖拽,匹配,测量,条码识别,ocr,定位引导,对位等,支持plc通讯,支持相机sdk无缝对接

    2025年7月2日
    5

发表回复

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

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