一、_exit()函数 和 _Exit()函数

main 函数中使用 return 后返回,return 执行后把控制权交给调用函数,结束该进程。调用_exit()函数会清除其使用的内存空间,并销毁其在内核中的各种数据结构,关闭进程的所有文件描述符,并结束进程、将控制权交给操作系统。

_exit()函数原型如下所示:

#include <unistd.h>
void _exit(int status);

调用函数需要传入 status 状态标志,0 表示正常结束、若为其它值则表示程序执行过程中检测到有错误发生。使用示例如下:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>int main(void)
{int fd;/* 打开文件 */fd = open("./test_file", O_RDONLY);if (-1 == fd) {perror("open error");_exit(-1);}close(fd);_exit(0);
}

_Exit()函数原型如下所示:

#include <stdlib.h>
void _Exit(int status);

_exit()和_Exit()两者等价,用法作用是一样的,这 2 个函数都是系统调用。

二、exit()函数

exit()函数_exit()函数都是用来终止进程的,exit()是一个标准 C 库函数,而_exit()和_Exit()是系统调用。

执行 exit()会执行一些清理工作,最后调用_exit()函数。exit()函数原型如下:

#include <stdlib.h>
void exit(int status);

exit(0),exit(1) 和 exit(-1)的区别

exit(0) 表示程序正常退出;除了0之外,其他参数均代表程序异常退出,如:exit(1),exit(-1)。
exit(1)exit(-1) 是分别返回1和-1到主调程序。exit(0)则是返回0。exit(0)表示程序正常退出,非0表示非正常退出。

return与exit的区别

return是语言级别的,它表示了调用堆栈的返回;
exit是系统调用级别的,它表示了一个进程的结束。

该函数是一个标准 C 库函数,使用该函数需要包含头文件<stdlib.h>,该函数的用法和_exit()/_Exit()是一样的。

exit()函数、_exit()函数 和 _Exit()函数相关推荐

  1. c语言strtof函数用法,c语言工具函数

    abort abs assert atexit atof atoi atol atoll bsearch div exit _Exit getenv labs llabs ldiv lldiv lon ...

  2. linux系统发送信号的系统调用是,linux系统编程之信号:信号发送函数sigqueue和信号安装函数sigaction...

    信号发送函数sigqueue和信号安装函数sigaction sigaction函数用于改变进程接收到特定信号后的行为. sigqueue()是比较新的发送信号系统调用,主要是针对实时信号提出的(当然 ...

  3. Python基础第六天——函数的使用、函数的参数、函数的返回值、函数的嵌套、命名空间、作用域、函数对象...

    一.拾遗 1.通常情况下无参函数只是进行操作,所以不需要返回值:有参数函数则需要返回值. 2.练习: 判断用户输入一串字符,如果这串字符的长度小于5则重新输入,如果大于5则退出循环. while Tr ...

  4. C语言signal()函数(通过设置一个函数(回调函数)来处理捕获到异常信号时需要执行的操作)

    文章目录 描述 声明 参数 返回值 实例 附加解释 背景知识:C语言中signal函数简介及使用 描述 C 库函数 void (*signal(int sig, void (*func)(int))) ...

  5. python拷贝文件函数_Python Set集合,函数,深入拷贝,浅入拷贝,文件处理

    1.Set基本数据类型 a.set集合,是一个无序且不重复的元素集合 classset(object):"""set() -> new empty set obje ...

  6. 套接字错误处理函数的封装思想及函数实现

    一.套接字错误处理函数的封装思想 在上篇文章中的 CS 模型,存在 bug: 先关 server,再关 client,立即再启动 server,此时会发现无法启动.原因是:先关 server,再关 c ...

  7. c语言掌握常用函数,c语言一些常用函数.pdf

    c语言一些常用函数 C 语言程序设计(常用函数说明) C 语言是 1972 年由美国的 Dennis Ritchie 设计发明的,并首次在 UNIX 操作系统的 DE C PDP-11 计算机上使用. ...

  8. python函数的嵌套调用_python函数的嵌套调用

    我们之前的代码都是定义函数然后直接调用,但是没有在一个函数内调用另外一个函数,今天就感受下函数嵌套调用. 提示:如果你想当然的认为函数嵌套是在函数内部又嵌套定义一个函数这种操作的话,那么这叫做闭包.相 ...

  9. oracle函数建立码值,Oracle函数与存储过程

    1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 D ...

  10. 检测php源码函数版本,PHP通用检测函数集合

    // ※CheckMoney($C_Money) 检查数据是否是99999.99格式 // ※CheckEmailAddr($C_mailaddr) 判断是否为有效邮件地址 // ※CheckWebA ...

最新文章

  1. 在C#中利用DirectX实现声音播放(winForm)
  2. Windows Live Writer 工具插件
  3. MyBatisPlus插件扩展_SqlExplainInterceptor执行分析插件的使用
  4. 中文乱码问题的一些总结
  5. Spring体系结构详解
  6. hibernate正向生成数据库表以及配置——hibernate.cfg.xml
  7. Socket和ServerSocket学习笔记
  8. 北斗三号频点_解码北斗三号
  9. 数据结构算法—递归算法求二叉树的叶子结点(C语言)
  10. Barefoot P4加速SDN
  11. 十年一轮回,不再设限
  12. 病毒周报(100927至101010)
  13. 如何动态创建水晶报表
  14. 补充(二)古典密码两张思维导图速通
  15. PHP - 命名空间(namespace)概述及实例说明
  16. C#图片处理 解决左右镜像相反(旋转图片)
  17. Linux —— 进程间通信
  18. 水瓶座可笑却笑不出的悲哀 - Qzone日志
  19. 2012年移动SEO启示
  20. Win10我的电脑图标怎么调出来?1分钟解决!

热门文章

  1. django fileup-load
  2. java run on server_web项目没有run on server时..
  3. 通过qemu复现路由器漏洞
  4. 人生第一场CTF的解题报告(部分)
  5. 简述计算机集成制造的特点,计算机集成制造系统CIMS的组成与特点
  6. 初识Hadoop,轻松应对海量数据存储与分析所带来的挑战
  7. 百度地图API gps坐标转换为百度坐标
  8. Python编程:从入门到实践,《外星人入侵》游戏代码【600行】【手敲原创】
  9. 【附源码】计算机毕业设计java养老机构管理信息系统设计与实现
  10. 2450 Problem B 树的高度