标准IO与系统IO的区别

        1.系统IO操作文件时是无缓冲输入,一般用于操作字符设备文件(LCD, LED, BEEP ...,数据需要实时刷新)

           标准IO操作文件时是有缓冲输入,一般用于操作普通文件(.txt, .jpg...)

                其缓冲机制可分3类:全缓冲, 行缓存,无缓冲

                 全缓冲:填满标准I/O缓存区才进行实际的I/O操作。(fwrite/fread)

                 行缓存:当在遇到换行符或者缓冲区满时,标准IO库执行IO系统调用操作(printf)

                 无缓冲:标准I/O库不对字符进行缓冲存储 (标准出错 stderr)

             

系统IO不带有缓冲机制,直接对实际文件进行操作,需要手动刷新缓冲区,坏处是会频繁调用系统资源。 标准IO先将数据写入缓冲区,系统会自动刷新缓冲区,一次性将写入数据传给内核,从而减少系统开销。在实际开发中标准IO更容易使用。

                


         2.系统IO是Linux操作系统提供函数接口
            标准IO标准C语言库函数提供的 


        系统IO的API接口有:open  read   write  close   lseek .....

        标准IO的API接口有:fopen fread  fwrite fclose  ftell  ferror feof .....    

        标准IO本质还是调用了系统IO,只是标准IO是通过系统IO进行封装给用户使用。

  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值