文件编程(文件IO)
文件编程就是操作文件,对文件进行打开,关闭,读、写等操作(个人理解)。之前C语言编写程序运行都是对键盘和显示器进行的,运行程序时会默认打开的三个文件 标准输入流 ( 键盘stdio)标准输出流 (终端显示器stdout) 、标准出错输出流(终端显示器stderr),程序运行相当于在对以上三个文件进行操作,而其他文件都需要通过程序手动打开才能进行访问。
1、计算机的一点哲学——一切皆是文件
方便管理计算机资源,不用不同的类别用不同的方式管理,软硬件统一管理方式,减化用户对输入输出设备的操作,节约成本,减少内存。计算机把所有资源都抽象成文件(VFS虚拟文件系统),操作系统以文件为单位对数据进行管理
2、文件分类
四大类
1/普通文件 - C库函数和API主要操作对象
2/目录文件 d
3/设备文件 c/b
4/链接文件 L
三小类
5/管道文件 p
6/套接字 s
7/堆栈 f
3、API 用户编程接口(Linux系统提供)
用户通过API实现访问内核,对文件进行操作
4、文件编程IO分类
初级IO (初级API) 标准IO(C库函数) 高级IO(高级API)
5、文件IO的重要性
一切皆是文件,对计算机而言文件操作的过程简单
6、文件系统
操作系统对系统的软件资源(不论是应用软件和系统软件)的管理都以文件方式进行,承担这部分功能的操作系统称为文件系统。(如根目录系统)
7、文件描述符(系统调用API)&文件指针(C语言库函数)
文件指针:C库函数提供(声明stdio.h),文件类型指针,一种结构体类型,存放文件的文件的有关信息,这些信息再打开一个文件时由系统根据文件的情况自动放入。C语言中使用文件指针做为I/O的句柄。文件指针指向进程用户区中