为什么我不能从主函数返回更大的值?

2024-11-08 09:04:00
admin
原创
28
摘要:问题描述:我试图从我的主函数返回一个更大的值(比如 1000),但是当我输入时echo $?它显示 0。如果我返回一个较小的值(例如 100),它会显示正确的值。我的代码:int main(void) { return 1000; } 我们可以返回的值有任何限制吗?解决方案 1:这里有两个相关概念:...

问题描述:

我试图从我的主函数返回一个更大的值(比如 1000),但是当我输入时echo $?它显示 0。

如果我返回一个较小的值(例如 100),它会显示正确的值。

我的代码:

int main(void)
{
     return 1000;
}

我们可以返回的值有任何限制吗?


解决方案 1:

这里有两个相关概念:C 退出状态和 bash 返回代码。它们都覆盖 0-255 的范围,但 bash 出于自身目的使用 126 以上的数字,因此从程序中返回这些数字会造成混淆。

为了安全起见,将退出状态代码限制为 0-127,因为这是最具可移植性的,至少http://docs.python.org/library/sys.html#sys.exit暗示了这一点。

C 退出状态在执行后放入 bash $? 变量中,但 bash 使用 127 来表示“未找到命令”,因此您可能希望避免这种情况。Bash参考页面。

Bash 也使用 128-255 作为信号 - 它们表示进程被信号终止:
exit code = 128 + signal number。因此,您可能能够使用接近 255 的数字,因为信号数字不太可能达到那么高。

除了这些常见的指导方针之外,还有许多人尝试定义不同数字的含义:http://tldp.org/LDP/abs/html/exitcodes.html

因此,如果您想从程序中返回任意整数,最好将其打印到标准输出,并VALUE=$(program)从 bash 脚本中捕获它。

解决方案 2:

返回值main(即应用程序的退出状态)在 *NIX 上限制为范围 [0, 255]。1000 超出范围,操作系统大概会将其视为 0。

解决方案 3:

在 Unix 系统中,的返回值main是有限的,因为exit8 位字节的范围是有限的。

在 Windows 中,有一个单一值,STILL_ACTIVE即值 259,最好避免将其作为进程退出代码。

除此之外,在 Windows 中您可以返回一个 32 位代码,例如HRESULT常见的和。

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用