博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 文件IO理解
阅读量:5820 次
发布时间:2019-06-18

本文共 636 字,大约阅读时间需要 2 分钟。

linux文件IO操作可以分为两种:

1.带缓存的文件IO操作,包括fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等

2.不带缓存的文件IO操作,包括open, close, read, write, getc, getchar, putc, putchar 等

 

两者的区别:

1.带缓存的io操作是在标准C里面定义的(可移植),而不带缓存的io操作是POSIX中定义的(不可移植),属于系统调用。带缓存的实际上是在不带缓存的基础之上

封装了一层,维护了一个输入输出缓冲区,使之能跨OS,成为ASCI标准。

2.fread一次可以读一个结构,read在linux/unix中读二进制与普通文件没有区别。

3.fopen返回的是文件流,open返回的是文件描述符。设备文件不可以当成流式文件来用,只能用open,而在linux/unix中任何设备都是文件,都可以用open,read

 

另外,标准io又提供了3种不同方式的缓冲

1.全缓冲。即缓冲区被写满或是调用fflush后,数据才会被写入磁盘。

2.行缓冲。即缓冲区被写满或是遇到换行符时,才会进行实际的io操作。当流涉及一个终端时(标准输入和标准输出),通常使用行缓冲。

3.不缓冲 。标准io库不对字符进行缓存处理。标准出错流stderr往往是不带缓存的,使得出错信息可以尽快显示出来。

转载地址:http://mafdx.baihongyu.com/

你可能感兴趣的文章
(50)与magento集成
查看>>
Ubuntu设置python3为默认版本
查看>>
日期Calendar/Date的用法
查看>>
JsonCpp 的使用
查看>>
问题账户需求分析
查看>>
JavaSE-代码块
查看>>
爬取所有校园新闻
查看>>
32、SpringBoot-整合Dubbo
查看>>
python面向对象基础
查看>>
HDU 2044 一只小蜜蜂(递归)
查看>>
docker 下 安装rancher 笔记
查看>>
spring两大核心对象IOC和AOP(新手理解)
查看>>
数据分析相关
查看>>
Python LDAP中的时间戳转换为Linux下时间
查看>>
微信小程序蓝牙连接小票打印机
查看>>
环境错误2
查看>>
C++_了解虚函数的概念
查看>>
全新jmeter视频已经上架
查看>>
Windows 8下如何删除无线配置文件
查看>>
解决Windows 7中文件关联和打开方式
查看>>