美文网首页
exit和_exit的区别

exit和_exit的区别

作者: 朱朱今天撸代码了吗 | 来源:发表于2018-05-15 17:59 被阅读0次

    exit()函数和_exit()函数看似相同,实际上其中的操作差别还是挺大的

    _exit()和exit两个函数最终都会调用系统调用sys_exit

    exit()函数定义在stdlib.h中,而_exit()定义在unistd.h中。exit()和_exit()都用于正常终止一个函数。但_exit()直接是一个sys_exit系统调用,而exit()则通常是普通函数库中的一个函数。它会先执行一些清除操作,例如调用执行各终止处理函数、关闭所有标准IO等,然后调用sys_exit。

      比如:

    int main()

    {

     printf("this is a exit test ")

    exit(0);

    }

    int main()

    {

    printf("this is a _exit test ")

    _exit(0);

    }

    这两个函数的输出结果:

    exit test:this is a exit test

    _exit test:没有输出。

    注:如果在printf最后面加上/n这种特殊符号的话 是会flash缓冲区的

    exit的作用就是结束,清理,就是说先检查缓冲区,把没有写入的数据写入到文件,而_exit是立刻关闭文件,文件缓冲区的内容也就消失了,这个时候就不可能再输出到显示设备了。

    参考博客:https://blog.csdn.net/qq_29350001/article/details/70255915

    相关文章

      网友评论

          本文标题:exit和_exit的区别

          本文链接:https://www.haomeiwen.com/subject/kjeedftx.html