请教表现了系统调用exit(0)与_exit(0)区别的实例
exit()函数与_exit()的区别是:
主要区别是_exit会立刻进入内核,而exit先执行一些清除工作(包括执行各种终止处理程序,关闭所有标准I/O等,一旦关闭了IO,例如Printf等函数就不会输出任何东西了),然后才进入内核。
我看的一本书上为阐述这两个函数的区别举了两个例子:
例一:
#include<stdlib.h>
#include<stdio.h>
main()
{
printf("output begin\n");
printf("content in buffer\n");
exit(0);
}
书上说最后的结果是:
output begin
content in buffer
例二:
#include<stdio.h>
#include<unistd.h>
main()
{
printf("output begin\n");
printf("content in buffer\n");
_exit(0);
}
书上说最后的结果是:
output begin
==================================================
可是,我在gcc编译器上编译,两者结果都是:
output begin
content in buffer
是不是书上错了?谁能给个两个区别的例子吗?谢谢!!!