wordpress企业站源码,新手如何建立网站,西安机械加工网站建设,第三方平台推广文件类型
一切I/O皆文件#xff0c;文件就是存放在磁盘上面的有序数据的集合。
文件类型#xff1a;
常规文件 r #xff1a;就是普通文件目录文件 d #xff1a;就是目录#xff0c;是一个索引字符设备文件 c #xff1a;键盘、鼠标块设备文件 b #xff1a;U盘、磁…文件类型
一切I/O皆文件文件就是存放在磁盘上面的有序数据的集合。
文件类型
常规文件 r 就是普通文件目录文件 d 就是目录是一个索引字符设备文件 c 键盘、鼠标块设备文件 b U盘、磁盘以块的方式进行存储的设备管道文件 p 套接字文件 s 符号链接文件 l 就是快捷方式
系统调用与库函数
系统调用就是操作系统给我们提供的接口库函数是在系统调用之上封装的函数。
系统调用与库函数的层次关系如下 库函数存在的意义
库函数可以让代码更兼容方便代码的移植。库函数就相当于一个翻译可以将同一句话翻译为不同操作系统下对应的系统调用。
尽管我们可以直接通过系统调用来实现功能但每个操作系统提供的接口不一样所以在移植到其他操作系统时每次都需要重新编写代码实现同样的功能而使用库函数后因为库函数的接口是一样的因此移植之后就不需要对代码进行修改库函数是已经写好的代码。
标准I/O
标准I/O由ANSI C标准定义主流操作系统上都实现了C库这就是库函数
标准I/O通过缓冲机制减少系统调用实现更高的效率。
流的概念
在C语言中定义了一个结构体FILE这个结构体用于存放标准I/O打开的文件相关信息。FILE就是流(stream)就是把数据当成水流一样从一个地方传到另一个地方。
流分为文本流和二进制流。
流的缓冲类型
无缓冲直接与磁盘进行数据交互直接写磁盘直接读磁盘。流不进行缓冲。
全缓冲内存中有一个空间叫做缓冲区用于与数据进行交互。缓冲区满之后一次性发给磁盘。
行缓冲当输入/输出中出现了换行符时就把缓冲区中的数据发给磁盘这时缓冲区不一定写满
三个标准I/O
名称文件描述符结构体(流)标准输入流0STDIN_FILENOstdin标准输出流1STDOUT_FILENOstdout标准错误流2STDERR_FILENOstderr
全缓冲与行缓冲实验
数据输出的情况有
程序结束将缓冲区全部数据输出全缓冲时缓冲区满将全部数据输出。缓冲区的大小为1KB1024Byte行缓冲时输入有换行\n将全部数据输出手动刷新缓冲区时将全部数据输出
程序结束输出实验如下 全缓冲区实验如下 行缓冲实验如下 文件I/O
文件I/O又叫系统I/O、系统调用是系统提供的一个接口对于不同的系统提供的接口是不一样的。文件I/O不提供缓冲机制每次读写都是直接操作磁盘空间。
什么是POSIX
POSIX是一个可移植操作系统接口的标准它定义了一组函数。它也是一种文件I/O
什么是文件描述符
每个打开的文件都会有一个对应的文件描述符(fd)它是一个非负整数。一个程序最多可以打开1024个文件文件描述符从0开始分配其中0,1,2分别代表标准输入、标准输出、标准错误。