exit(), _exit(), return的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010318270/article/details/81058124
exit():清理I/0缓存区后再退出进程
_exit():直接结束进程进入到内核中
return:函数返回,如果返回的是main函数,则为退出程序

exit()和_exit()的最大区别是:
exit()函数在调用exit系统之前要检查文件的打开情况,把文件缓冲区的内容写回文件。
_exit()函数直接将进程关闭,缓冲区的数据将会丢失。

"缓冲I/O操作":对每一个打开的文件,在内存中都有一片缓冲区,每次读文件时,会连续读出若干条记录,在下次读文件时可以直接从内存的缓冲区读取;同样,每次写文件时,仅仅是写入内存的缓冲区,满足一定条件后,再将缓冲区中的内容一次性写入文件,这种技术大大增加了文件读写的速度。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("First record!\n");
    printf("Second record!");
    exit(0);
}
$ ./a.out
First record!
Second record!

#include <stdio.h>
#include <unistd.h>

int main()
{
    printf("First record!\n");
    printf("Second record!");
    _exit(0);
}
$ ./a.out
First record!


猜你喜欢

转载自blog.csdn.net/u010318270/article/details/81058124