传智扫地僧课程学习笔记。
printf中
如果使用\n,使用系统调用能打印出内容,
如果不使用,使用系统调用就打印不出东西,
若是使用c库函数,就都能打印出东西来,
\n能启动刷新缓冲区的作用,
这里能否打印的关键,就是行缓冲,
int main01()
{
printf("hello.... fddddddddd1111");
//exit(0)是c库函数 =======其他操作。。。。在调用_exit
_exit(0); //系统调用
}
系统调用和库函数的区别是,库函数多了一些封装,
比如,调用终止处理程序,清除I/O缓冲,
说到终止处理程序,其函数为
int atexit(void (*function)(void));
给它传参为,函数的地址,
但是使用abort()就会异常退出,终止处理程序就不会执行,void bye1(void)
{
printf("bye1...do\n");
}
void bye2(void)
{
printf("bye2...do\n");
}
int main()
{
atexit(bye1);
atexit(bye2);
printf("hello.... fddddddddd1111\n");
//abort();
sleep(100);
//exit(0); //是c库函数 =======其他操作。。。。在调用_exit
return 0;
}
sleep(100);中给它发终止信号,也会异常退出,终止处理程序也不会执行,