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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 语义分割和实例分割概念

    语义分割和实例分割概念有些概念容易混淆,整理一下,备注记忆。一、概念区分1.图像分类(imageclassification)识别图像中存在的内容;2.物体识别和检测(objectrecognitionanddetection)识别图像中存在的内容和位置(通过边界框);3.语义分割(semanticsegmentation)识别图像中存在的内容以及位置(通过查找属于它的所有像素…

    2022年8月23日
    7
  • axios实现跨域三种方法_vue跨域配置

    axios实现跨域三种方法_vue跨域配置axios地址

    2022年9月11日
    2
  • Jafka来源分析——Processor

    Jafka来源分析——Processor

    2022年1月12日
    52
  • 基于OpenCV3实现人脸识别(实践篇)[通俗易懂]

    基于OpenCV3实现人脸识别(实践篇)[通俗易懂]实践总结:首先了解做人脸识别的步骤 各个算法后面的原理 原理背后的相关知识的了解 人脸识别项目总遇到的问题由于篇幅原因,后面一篇写各个算法背后的原理,原理背后的相关知识的了解,人脸识别项目总遇到的问题首先感谢:https://blog.csdn.net/qq_37406130/article/details/78697244基于Opencv的人脸识别ht…

    2022年6月7日
    66
  • 集成环境哪个好?四大PHP集成开发环境比较

    集成环境哪个好?四大PHP集成开发环境比较http://www.5icool.org/a/201505/a11537.html专注了这么些年技术,没有养成记录和积累的习惯。如今乐于开源和分享经验,却停笔踌躇,不知该从何处说起。开通博客也有一段时间了,也没能写出一篇像样的文章,想了很久,觉得还是应该循序渐进,从搭建和配置开发、调试环境开始。主流的PHP集成开发环境(IntegratedDevelopmentEnvironment…

    2022年6月28日
    41
  • git pycharm_怎么把git上放到pycharm

    git pycharm_怎么把git上放到pycharm首先检查pycharm是否安装了ignore插件项目目录如图:选中项目automationTest名称,右击–>New–>查看是否有ignorefile选项,如果有表示Pycahrm已经配置了ignore插件,如果没有,则需要安装插件pycharm安装.ignore插件File–>Settings–>Plugins–在右…

    2022年8月28日
    2

发表回复

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

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