Linux-文件I/O

创客学院

Linux下支持两种IO接口

1、文件IO(open/close/read/write)——POSIX标准
2、标准IO(fopen/fclose/fread/fwrite)——ANSI标准

两者为相互依赖的关系

概念

对设备(如硬盘、内存、网卡、键盘)中的数据进行读写
input、output

IO作用

Linux“下一切皆文件”,磁盘、硬件、网络设备等都被虚拟成了相应的文件
Linux对这些文件的操作都通过IO接口来完成的。

Linux内核中IO操作的实现机制

Linux系统内部会将文件系统,设备驱动、网络协议等复杂的操作实现好,对应用层只提供简单的应用接口,即API(application interface)应用接口

一般计算机分三层——硬件-操作系统-APP

Linux内部的VFSC(虚拟文件系统层)层对不同文件系统,设备驱动、网络协议等接口做了标准化,这样在应用层就可以通过统一的接口操作不同的设备。
驱动——直接读写硬盘
在一个操作系统下,文件系统的种类也可以很多

华清创客学院

概念:

一组相关数据的集合

文件类型:

7种

  • 常规文件 r

  • 目录文件 d

  • 字符设备文件 c

  • 块设备文件 b

  • 管道文件 p

  • 套接字文件 s

  • 符号链接文件 I

强调:操作系统不同,所支持的文件类型也不同

标准I/O

介绍

标准I/O由ANSI C标准定义

主流操作系统上都实现了C库

标准I/O通过缓冲机制减少系统调用,实现更高的效率

无缓冲

有缓冲

标准I/O-流

FILE

标准IO用一个结构体类型来存放打开的文件的相关信息

标准I/O的所有操作都是围绕FILE来进行

流(stream)

FILE又被称为流(stream)

文本流/二进制流

  • Windows

二进制流:换行符 ←→ '\n'

文本流:换行符 ←→ '\r'\n'

  • Linux

换行符 ←→ '\n'

标准I/O-流的缓冲类型

  • 全缓冲

当流的缓冲区无数据或无空间时才执行实际I/O操作

  • 行缓冲

当在输入和输出中遇到换行符('\n')时,进行I/O操作

当流和一个终端关联时,典型的行缓冲

  • 无缓冲

数据直接写入文件,流不进行缓冲

标准I/O-stdin,stdout,stderr

标准I/O-打开流

下列函数可用于打开一个标准I/O流:

FILE *fopen(const char *path,const char *mode);

成功时返回流指针;出错时返回NULL

// 函数原型  
FILE *fopen(const char *path,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值