exit()&_exit()
exit()和_exit()函数都是用来终止进程的。当程序执行到exit()或_exit()时,进程会无条件地停止所有操作,清除各种数据结构,并终止本进程的运行。
exit():在终止当前进程之前要检查该进程打开了哪些文件,并把缓冲区的内容写回文件,即清理I/O缓冲。
_exit():直接使进程停止运行,将进程关闭,缓冲区的数据会丢失。
想要保证数据完整性,最好使用exit()函数。
exit():
头文件:#include <stdlib.h>
函数原型:void exit(int status);
_exit():
头文件:#include <unistd.h>
函数原型:void _exit(int status);
函数传入值:status是一个整型的参数。0:正常结束,其他数值:程序非正常结束。
exit():使用示例如下
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int n = 10;
while(n--)
{
if(n == 5)
{
exit(0);
}
printf("hello\n");
sleep(1);
}
}
_exit():使用示例如下:
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
printf("hello");
_exit(0);
}
标准输出流stdout是行缓冲,遇到\n才会实际写入终端。