热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c/c++开发分享如何立即关闭C中的程序?

我正在编写C代码,我正在分析一些数据。我已将程序设置为仅处理100个数据输入。当它有超过100个输入时,它会产生分段错误。我想创建一种方法,以便当输入数量超过100时,将警告用户并

我正在编写C代码,我正在分析一些数据。 我已将程序设置为仅处理100个数据输入。 当它有超过100个输入时,它会产生分段错误。 我想创建一种方法,以便当输入数量超过100时,将警告用户并终止程序。 我知道如何通过简单地return 0从main函数中执行它,但是我是远离main的多个函数调用,并且很难做到这一点,即使在此函数中return 0也会使其循环。

是否有任何直接的方法来终止整个程序而不是主要的?

    您正在寻找标准functionexit

    正常终止进程,执行常规清理以终止进程。

    首先,通过调用atexit注册的所有函数都按照其注册的相反顺序执行。 然后,关闭所有流并删除临时文件,最后将控件返回到主机环境。

    status参数返回给主机环境。

    如果您修复了段错误,那会更好。

    您需要包含标准库,然后您可以在任何地方调用exit:

     #include  ... exit(status); 

    其中status是表示退出代码的整数。 对于关注状态:对于约定0是成功,其他值表示错误状态。

    你也可以fprintf(stderr, ....)然后调用abort() ; 如果您想稍后调试您的错误,这可能会有所帮助。

    但我相信你应该重新编写你的程序,以便只能通过可用资源给出大小限制:所以如果你在更大的计算机上运行你的程序(无论这意味着什么)它可以处理超过100个输入。

    稍微好一点的做法可能是使用信号处理程序捕获分段错误,并让信号处理程序引发SIGSTOP信号。

    这样你的程序就会停止,但会留在内存中。 然后,您可以使用调试器附加到它,并在SEGFAULT发生的位置查看程序的所有荣耀。

    这对于在开发IDE中未运行的长时间运行的程序中查找问题非常有用。

    需要了解更多c/c++开发分享如何立即关闭C中的程序?,也可以关注C/ C++技术分享栏目—编程笔记

      以上就是c/c++开发分享如何立即关闭C中的程序?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(编程笔记)。


      推荐阅读
      • C++中的三角函数计算及其应用
        本文介绍了C++中的三角函数的计算方法和应用,包括计算余弦、正弦、正切值以及反三角函数求对应的弧度制角度的示例代码。代码中使用了C++的数学库和命名空间,通过赋值和输出语句实现了三角函数的计算和结果显示。通过学习本文,读者可以了解到C++中三角函数的基本用法和应用场景。 ... [详细]
      • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
      • vue使用
        关键词: ... [详细]
      • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
      • 向QTextEdit拖放文件的方法及实现步骤
        本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
      • Java序列化对象传给PHP的方法及原理解析
        本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
      • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
      • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
      • 本文介绍了一个程序,可以输出1000内能被3整除且个位数为6的所有整数。程序使用了循环和条件判断语句来筛选符合条件的整数,并将其输出。 ... [详细]
      • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
      • 从零学Java(10)之方法详解,喷打野你真的没我6!
        本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
      • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
      • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
        本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
      • 成功安装Sabayon Linux在thinkpad X60上的经验分享
        本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
      • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
      author-avatar
      小么么和
      这个家伙很懒,什么也没留下!
      PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
      Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有