Exit函数

1函数: exit()

函数名: exit()

所在头文件:stdlib.h

功 能: 关闭所有文件,终止正在执行的进程。

exit(1)表示异常退出.这个1是返回给操作系统的。

exit(x)(x不为0)都表示异常退出

exit(0)表示正常退出

exit()的参数会被传递给一些操作系统,包括UNIX,Linux,和MS DOS,以供其他程序使用。

用 法: void exit(int status);

参 数 : status //程序退出的返回值.

2程序例


1

2

3

4

5

6

7

8

9

10

11

12

13

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

intmain(intargc,char*argv[])

{

intstatus;

printf("Entereither1or2\n");

status=getch();

/*SetsDOSerrorlevel*/

exit(status-‘0‘);

/*Note:thislineisneverreached*/

return0;

}

exit()和return的区别:

按照ANSI C,在最初调用的main()中使用return和exit()的效果相同。

但要注意这里所说的是“最初调用”。如果main()在一个递归程序中,exit()仍然会终止程序;但return将

控制权移交给递归的前一级,直到最初的那一级,此时return才会终止程序。return和exit()的另一个区别

在于,即使在除main()之外的函数中调用exit(),它也将终止程序。

_exit()与exit的区别:

头文件:

exit:#include<stdlib.h>

_exit:#include<unistd.h>

_exit()函数:直接使进程停止运行,清除其使用的内存空间,并销毁其在内核中的各种数据结构;

exit()函数则在这些基础上作了一些包装,在执行退出之前加了若干道工序。

exit()函数与_exit()函数最大的区别就在于 exit()函数在调用 exit 系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件。

时间: 2024-08-29 14:11:12

Exit函数的相关文章

return和exit函数的区别

在上Linux课的时候,老师提到一句,调用vfork产生的子进程就是为了使用exec族函数来执行其他的代码逻辑. 在子进程退出的时候有两种方式,exit和exec族函数,不能使用return,为什么不能用return呢,为什么只有vfork会不让用return呢? 于是我就写了这样的代码 1 #include<stdio.h> 2 #include<unistd.h> 3 #include<stdlib.h> 4 5 6 int main() 7 { 8 pid_t p

exit函数的妙用

写了一个程序,用来判断一个文件是否存在: #include<stdio.h> main() { FILE *fp; fp = fopen ("/home/wang/my/ct2.c", "r+"); if (fp == NULL) { printf("there is not this file!\n"); } else printf("the file is exist!\n"); fclose (fp); }

进程终止和exit函数

内核要执行一个应用程序,唯一的途径是通过系统调用,exec函数,exec又会调用启动程序,启动程序(通常是汇编语言)以类似下面的方式调用main函数: void exit(main(argc, argv)); 那么在main函数末尾使用exit(0)和使用return 0是等价的.这里有三个正常终止程序的函数: void exit(int status); // 先执行一些清理操作,然后进入内核 void _Exit(int status); // 立即进入内核,可在所有函数中调用 void _

atexit函数和exit函数的理解

p { margin-bottom: 0.25cm; line-height: 120% } 按照ISO C的规定,一个进程可以登记多达32个函数,这些函数将由exit自动调用,通常这32个函数被称为终止处理程序,并调用atexit函数来登记这些函数. 我们通常认为C语言的起始函数是main函数,实质上一个程序的启动函数并不一定是main函数,这个可以采用链接器来设置,但是gcc中默认main就是C语言的入口函数,在main函数启动之前,内核会调用一个特殊的启动例程,这个启动例程从内核中取得命令

atexit() 与 exit()函数

函数exit() 函数原型: exit()函数用于在程序运行的过程中随时结束程序,exit的参数state将会返回给操作系统,返回0表示程序正常结束,非0表示程序非正常结束.main函数结束时也会隐式地调用exit函数.exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流.关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件. exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束: exi

exit()函数

在代码中有时碰到: exit(0); 可也经常碰到: exit(1); 究竟exit()函数的参数0和1各自代表什么含义呢? 查看了MSDN后,明白了.对于exit()函数,其函数原型为: void exit( int status ); status的值为EXIT_SUCCESS(0)表示程序执行成功,正常退出:status的值为EXIT_FAILURE(1)表示程序执行失败,异常退出.尽管exit()函数的返回值为void型,但是操作系统可以获取status的值,知道程序执行的情况.

absort函数和exit函数

1. exit()函数会结束并退出程序. 1. abosrt()函数会触发程序的异常,然后程序后面的语句就不会执行了.用来提示错误.会出现:

Linux C _exit函数与exit函数的联系与区别

一.联系 1.功能上,_exit和exit函数都是让进程正常退出,即关闭进程所打开的文件描述符,释放已占用内存和其他资源. 二.区别 1._exit函数在头文件unistd.h中声明,而exit在头文件stdlib.h中声明. 2.执行_exit函数后,控制权立即返回给内核,而exit函数要先执行一些清除操作,然后才将控制权交给内核. 3._exit函数不会刷新I/O缓冲区,可能造成数据丢失,而exit函数是在_exit函数之上的一个封装,它在调用_exit函数之前,会先刷新I/O缓冲区,保证了

python sys.exit()函数说明

sys.exit()函数是通过抛出异常的方式来终止进程的,也就是说如果它抛出来的异常被捕捉到了的话程序就不会退出了. #!/usr/bin/python #!coding:utf-8 import sys if __name__=="__main__": try: sys.exit(100) except SystemExit,err: print '捕捉到SystemExit异常,SystemExit 并不派生自Exception 所以用Exception对它没有用' print '

Linux多任务编程之四:exit()函数及其基础实验(转)

来源:CSDN  作者:王文松   转自Linux公社 exit()和_exit()函数 函数说明 创建进程使用fork()函数,执行进程使用exec函数族,终止进程则使用exit()和_exit()函数.当进程执行到exit()或 _exit()函数时,进程会无条件的停止剩下的所有操作,清除各种数据结构,并终止本进程的运行.但是,这两个函数还是有区别的,其调用过程如图1所 示: 从图1可以看出,_exit()函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核中的各种数据结构