博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POSIX规范-unbuffered I/O (文件I/O)
阅读量:6599 次
发布时间:2019-06-24

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

一、POSIX

POSIX 表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX ),X则表明其对Unix API的传承。

POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称。

POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。

二、Linux文件类型

Linux文件类型常见的有:普通文件(-)、目录(d)、字符设备文件(c)、块设备文件(b)、符号链接文件(l)、管道文件(p)和套接口(s)。

三、虚拟文件系统

“什么是文件系统”。文件系统是对一个存储设备上的数据和元数据进行组织的机制。

Linux文件系统由两层结构构成:虚拟文件系统(VFS) 和 各种不同的具体的文件系统(Ext3 FAT32等)。

VFS把各种具体的文件系统抽取出来,形成一个抽象层,对用户而言屏蔽了底层文件系统的实现细节和差异。

VFS位于用户程序和具体的文件系统之间,对用户程序提供了标准的文件系统调用接口。

VFS不仅接受用户层的系统调用open()read()write()close()等,还支持多种具体文件系统之间的互访,

接受内核其他子系统的操作请求,如:内存管理和进程调度。

$ cat /proc/filesystems 可以查看系统支持的文件系统。

 四、文件描述符

linux哲学之一就是一切皆文件。所以I/O设备也被当作文件来处理,内核是如何区分和引用特定的文件?那就是文件描述符(file descriptors)

文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。

当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开.

一个进程启动会打开3个流:stdin、stdout和stderr。这3个流分别对应文件描述符0、1和2。

POSIX 定义了 STDIN_FILENO、STDOUT_FILENO 和 STDERR_FILENO 来代替 0、1、2。这三个符号常量的定义位于头文件 unistd.h。

 

 

转载于:https://www.cnblogs.com/CloudPing/p/3801751.html

你可能感兴趣的文章
.NET深入学习笔记(1):DataSet和SqlDataReader性能差异深入剖析与测试(2)
查看>>
034 命名路由
查看>>
MapReducer中的多次归约处理
查看>>
Asp.net MVC 示例项目"Suteki.Shop"分析之---NHibernate
查看>>
众多Android 开源项目推荐,给力工作给力学习
查看>>
[IE编程] WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口
查看>>
【Java学习笔记】拾遗
查看>>
Windows Server 2008 还原活动目录
查看>>
演示:思科设备基于物理接口帧中继(fame-relay)的配置
查看>>
Windows Server 2012平台配置Exchange Server 2013高可用参考v1.0
查看>>
Effective C# 摘录(1) - C# Language Elements
查看>>
arcEngine 经典代码-编辑
查看>>
Java程序性能优化5
查看>>
AngularJS快速入门指南16:Bootstrap
查看>>
HTML5 Canvas 动态勾画等速螺线
查看>>
[转] C# TextBox、DataGrideView中的数据绑定
查看>>
基于Asterisk的VoIP开发指南——Asterisk 模块编写指南(1)
查看>>
SQOOP安装部署
查看>>
Timer和TimerTask
查看>>
5G网络新突破:73GHz毫米波成功传输10公里
查看>>