1. 输出缓冲区
在linux系统上,一个进程默认打开三个文件:
标准输入stdin,
标准输出stdout,
标准输出错误stderr
2.printf()函数只是将内容写入到缓冲区,并没有直接输出
输出条件如下:
遇到"\n",输出进程结束,输出主动刷新 fflush(stdout);输出缓冲区满时,输出
3、exit()和_exit()的区别
注意:
atexit注册多个函数(最多32个函数),进程结束时,按照出栈的顺序进行调用。
例如:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>void Func1(){printf("func1 start\n");}void Func2(){printf("func2 start\n");}int main(){atexit(Func1);atexit(Func2);printf("main start\n");sleep(5);printf("main end\n");exit(0);}
结果: