在C语言中,exit()终止调用过程,而不执行exit()函数之后的其余代码。
例子:-
// C program to illustrate exit() function.
#include
#include
int main(void)
{
printf("START");
exit(0); // The program is terminated here
// This line is not printed
printf("End of program");
}
输出:
START
现在的问题是,如果我们具有exit()函数,那么为什么C11标准引入了_Exit()?实际上,exit()函数会在程序终止之前执行一些清除操作,例如连接终止,缓冲区刷新等。C / C++中的_Exit()函数可正常终止程序,而无需执行任何清除任务。例如,它不执行向atexit注册的功能。
句法:
// Here the exit_code represent the exit status
// of the program which can be 0 or non-zero.
// The _Exit() function returns nothing.
void _Exit(int exit_code);
// C++ program to demonstrate use of _Exit()
#include
#include
int main(void)
{
int exit_code = 10;
printf("Termination using _Exit");
_Exit(exit_code);
}
输出:
通过程序显示差异:
// A C++ program to show difference
// between exit() and _Exit()
#include
using namespace std;
void fun(void)
{
cout << "Exiting";
}
int main()
{
atexit(fun);
exit(10);
}
输出
Exiting
如果我们将退出替换为_Exit(),则不会打印任何内容。
// A C++ program to show difference
// between exit() and _Exit()
#include
using namespace std;
void fun(void)
{
cout << "Exiting";
}
int main()
{
atexit(fun);
_Exit(10);
}
输出
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。