C exit()函数 - 它的作用是什么?

tes*_*ter 1 c exit

我在学习C.

如果我:

void fun(){
      exit(0);
}

void main(){
    /*instructions*/
    fun();
    /*other-instructions*/
}
Run Code Online (Sandbox Code Playgroud)

当调用函数"fun"时,我退出(0).一旦退出(0)执行,它会关闭所有内容吗?或其他指令执行?exit(0)和exit(-1)之间的区别是什么?我是否必须#include一些东西来使用退出功能?

谢谢你的帮助!

Adr*_*ala 6

通常情况下,exit(n)退出程序,不运行任何更多的您的代码,使程序"状态代码"等于(在shell看到的错误号)n(虽然高序位可能被忽略).

更确切地说,exit()将为C库做一些清理工作.特别是它将调用您已使用注册的关闭函数atexit (有关更多详细信息,请参阅文档).最后,它调用_exit()系统调用,将控制转移到内核并告诉内核停止调用进程.内核将释放进程内存,关闭文件和套接字等.