`

exit(0)与exit(1)、return区别

    博客分类:
  • php
 
阅读更多

exit(0):正常运行程序并退出程序;

exit(1):非正常运行导致退出程序;

return():返回函数,若在主函数中,则会退出函数并返回一值。

详细说:

1. return返回函数值,是关键字; exit 是一个函数。

2. return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
3. return是函数的退出(返回);exit是进程的退出。

4. return是C语言提供的,exit是操作系统提供的(或者函数库中给出的)。exit是一个库函数,exit(1)表示发生错误后退出程序,exit(0)表示正常退出。在stdlib.h中exit函数是这样子定义的:void exit(int status)。这个系统调用是用来终止一个进程的,无论在程序中的什么位置,只要执行exit,进程就会从终止进程的运行。讲到exit这个系统调用,就要提及另外一个系统调用,_exit,_exit()函数位于unistd.h中,相比于exit(),_exit()函数的功能最为简单,直接终止进程的运行,释放其所使用的内存空间,并销毁在内存中的数据结构,而exit()在于在进程退出之前要检查文件的状态,将文件缓冲区中的内容写回文件。

5. return用于结束一个函数的执行,将函数的执行信息传出给其他调用函数使用;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS或其父进程,这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出, 非0 为非正常退出。

6. 非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。

分享到:
评论

相关推荐

    C语言exit和return函数的区别

    `,其中status是进程的退出状态,通常情况下,exit(0)表示进程正常退出,而exit(1)或exit(-1)表示进程异常退出。exit函数会结束当前进程,并且会调用终止处理程序和用户空间的标准I/O清理程序。 Return函数: ...

    delphi exit类似C return

    首先,`exit` 还可以用来结束整个应用程序,尤其是在主窗体(Main Form)中调用 `exit` 时,这将关闭程序,相当于 C++ 中的 `exit(0)` 或 `std::exit(0)`。其次,`exit` 不像 `return`,它不能在循环、if 语句等控制...

    Visual C++中exit()和return的选择和使用

    例如,`exit(0)`表示程序正常终止,而`exit(1)`或其他非零值则表示程序由于某种错误而异常终止。 在给定的代码示例中,`exit(1)`被用于检测堆栈溢出情况。如果堆栈满了(即`ptr > MAX`),则会触发`exit(1)`,从而...

    exit (2)_EXIT_exit过程_

    三、`exit`与`quit`的区别 在MATLAB中,`quit`函数与`exit`功能相似,但有一些细微差别。`quit`不接受任何参数,而且在MATLAB R2016b及以后的版本中,`quit`已被标记为废弃,推荐使用`exit`代替。 四、`onCleanup`...

    C++ 中exit(),_exit(),return,abort()函数的区别

    exit()函数与_exit()函数及return关键字的区别:  exit()和_exit()函数都可以用于结束进程,不过_exit()调用之后会立即进入内核,而exit()函数会先执行一些清理之后才会进入内核,比如调用各种终止处理程序,关闭...

    ABAP流程处理的命令说明(stop,exit,return,check,reject)

    本文将深入解析ABAP中的五个关键流程处理命令:`STOP`, `EXIT`, `RETURN`, `CHECK`, 和 `REJECT`,这些命令用于控制程序的执行流程,帮助开发者更灵活地管理程序的运行状态。 ### STOP 命令 `STOP` 命令用于立即...

    exit(-1)或者return(-1)shell得到的退出码为什么是255

    在C语言中,`return(-1)`或`exit(-1)`中的`-1`实际上是一个有符号整数,其二进制表示为11111111111111111111111111111111(假设是32位系统)。然而,当这个值被用作退出状态码时,它被转换为无符号整数,因为退出...

    详解C语言中return与exit的区别

    详解C语言中return与exit的区别 1,exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些...

    Python中exit、return、sys.exit()等使用实例和区别

    ### Python中exit、return、sys.exit()的使用与区别 #### 一、引言 在Python编程中,控制程序流程的几种方式包括`return`、`exit`以及`sys.exit()`。这些关键字或函数用于终止函数执行或者结束整个程序运行。它们在...

    java was started but returned exit code

    java was started but returned exit code=1; 关于Android最新的SDK下载解压后出现java was started but returned exit code=1;时的解决方法,我在网上参考相关文献后得出的,希望对你有用!

    c语言中return与exit的区别浅析

    1. exit 用于在程序运行的过程中随时结束程序,exit 的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有...

    Shell中exit和return的区别讲解

    在Shell脚本编程中,`exit` 和 `return` 是两个关键的控制流程命令,它们在不同的上下文中有着明显的区别。下面将详细解释这两个命令的用法和它们之间的差异。 首先,`exit` 命令是Shell内建的一个命令,它的主要...

    oracle存储过程中return和exit区别概述及测试

    在Oracle数据库的PL/SQL编程中,`RETURN` 和 `EXIT` 语句都是用于控制流程的结构,但它们有着不同的用法和效果。这里我们将深入探讨这两个关键字的区别,并通过提供的示例代码进行分析。 首先,`RETURN` 语句在存储...

    进程退出控制exit

    `exit`、`_exit`和函数返回(`return`)是三种常见的进程退出方式,它们之间存在一些微妙的区别。接下来,我们将深入探讨这三个方法的细节。 1. **exit()函数**: `exit()`是C标准库中的一个函数,定义在`stdlib.h...

    TIA博途SCL入门学习(二)常用基本控制语句用法和举例.docx

    本篇文章主要探讨的是SCL中的几种常用基本控制语句,包括FOR循环、EXIT语句和RETURN语句,通过实例帮助初学者更好地理解和运用这些语句。 1. FOR循环语句 FOR循环是一种预知循环次数的控制结构,适用于需要执行固定...

    exit()编程exit()编程exit()编程exit()编程

    - `exit()`不同于`return`语句,`return`只能用于函数内部,而`exit()`可以终止整个程序。 - 不推荐在`main()`函数中使用`return`和`exit()`同时,因为这可能导致未定义的行为。 - 使用`exit()`时,应尽量确保所有...

Global site tag (gtag.js) - Google Analytics