关于"三种缓冲"的学习

          “缓冲”知识的补充

          在周三的时候,学姐讲了进程方面的知识,不过对于某一个程序用到return  和 exit 之后使得父子进程输出数据的结果是随机的这一问题的讲解,我还是有些疑惑。

          晚上组长过来了解我学习情况,我说出了自己对这个问题的疑惑,然后组长以自己“Understanding Learning”的态度,给我普及了一下“缓冲机制”。

缓冲机制有三种,分别为:

  1>  全缓冲:他指的是系统在填满标准IO缓冲区之后,才进行实际的IO操作;需要注意的是:对于驻留在磁盘上的文件来说,通常是由标准IO库实施全缓冲。组长特别强调它与行缓冲的区别在于:是否与人进行交互。

  2>  行缓冲:在这种情况下,标准IO在输入和输出中遇到换行符时执行IO操作;需要注意的是:当流涉及终端时,通常使用行缓冲(即进行人机交互时)。

  3>  无缓冲:他指的是标准IO库不对字符进行缓冲存储;需要注意的是:标准出错流stderr( )  和  write( ) 通常是无缓冲的。

这里提一下这几个退出函数,毕竟是由他们所引起的问题思考:

  1>  return ( ) : 是当前函数的返回,当然如果是在主函数main,自然就结束当前进程啦,如果不是,那就是退回上一层调用。在多个进程时,如果有时要检测上进程是否正常退出的,就要用到上个进程的返回值,以此类推。

  2>  exit ( ) : 用来正常终结目前进程的执行,并把参数status返回给父进程,而进程所有的缓冲数据会自动写回并关闭未关闭的文件。void exit  ( int status );exit ( )结束当前进程/当前程序,在整个程序中,只要调用exit就会结束。

  3>  _exit () : 主要区别于exit (),因为相比于exit ()函数,它不进行清理工作而直接进入内核。而exit函数调用之后先进性一系列的清理处理,包括调用执行各终止处理程序,关闭所有标准IO流等,然后进入内核。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值