POSIX规范-unbuffered I/O (文件I/O)
一、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
POSIX规范-unbuffered I/O (文件I/O)相关推荐
- Linux-正则表达式的POSIX规范及流派
Linux/Unix工具与正则表达式的POSIX规范 对正则表达式有基本了解的读者,一定不会陌生『\d』.『[a-z]+』之类的表达式,前者匹配一个数字字符,后者匹配一个以上的小写英文字母.但是如果你 ...
- 《安富莱嵌入式周报》第280期:支持在线仿真编程的网页版电子开发,CAN总线防攻击实现,BigFAT 规范打破了 FAT 每个文件 4GB 的限制
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- linux 时区文件的规则,linux – 如何将POSIX时间转换为Olson时区文件...
因为我需要它来处理我的特殊情况,所以我做了一个小的bash脚本. 我知道这并不是涵盖所有情况.但至少你可以用它作为参考. 我的任务是解析字符串: "EST%dEDT%d,M%d.%d.%d/ ...
- Shell编程规范与变量(shell编程规范,执行脚本文件的四种方式,管道符号与重定向,shell变量的作用于类型)
文章目录 Shell脚本概述 Shell脚本的概念 Shell的作用 Shell编程规范 重定向与管道 Shell脚本变量 自定义变量 特殊变量 Shell脚本概述 Shell Script ,She ...
- [转]Linux内核基础与常用命令总结
##这部分内容主要是基于一些关于Linux系统的内核基础和基本命令的学习总结,内容不全面,只讲述了其中的一小部分,后续会再补充,如有错误,还请见谅. Linux操作系统 Linux操作系统博大精深,其 ...
- 云计算——Google云计算原理与应用(Google文件系统GFS)
目录 1.Google文件系统GFS 2.系统架构 3.GFS的特点 4.容错机制 5.系统管理技术 1.Google文件系统GFS Google文件系统(Google File System,GFS ...
- 分布式存储技术及应用
根据did you know(http://didyouknow.org/)的数据,目前互联网上可访问的信息数量接近1秭= 1百万亿亿 (1024).毫无疑问,各个大型网站也都存储着海量的数据,这些海 ...
- 云计算的概念,发展现状,实现机制,Google云计算原理
第1章 绪论 很少有一种技术能够像"云计算"这样,在短短的两年间就产生巨大的影响力.Google.亚马逊.IBM和微软等IT巨头们以前所未有的速度和规模推动云计算技术和产品的普及 ...
- 五分钟了解什么是Google文件系统(GFS)?
简介 Google文件系统是构建在廉价服务器之上的大型分布式文件系统.它将服务器故障视为正常现象,通过软件的方式自动容错,在保证系统可靠性和可用性的同时,大大降低系统的成本 系统架构 GFS系统的节点 ...
最新文章
- USB和串口(COM)的区别,以及相互转换
- python 数据结构-字典
- java避免空指针异常_避免Java中的空指针异常
- matlab delete、clf、cla、close、closereq删除对象
- n个字符串按照字典序排列
- 学习ASP.NET MVC的资料推荐
- gulp——用自动化构建工具增强你的工作流程
- iis 下的 selfssl
- 使用ASM实现动态代理
- 计算机软考做题app,计算机软考真题app
- Python POST 修改某计步APP的数据
- metaRTC5.0实现webrtc的TURN支持
- 神舟笔记本电脑进入u启动之BIOS设置方法
- 自然语言处理技术之准确率(Precision)、召回率(Recall)、F值(F-Measure)简介
- Linux 用户账号安全管理,文件系统和日志
- python牛顿迭代法求方程的根_python实现迭代法求方程组的根过程解析
- 马尔可夫毯(Markov Blanket)
- js 写一个任意类型转浮点小数点保留两位
- 计算机毕业设计之java+ssm基于web的医院门诊互联电子病历管理信息系统
- 新电脑Linux反应慢怎么回事,电脑反应慢怎么处理 教你几招解决电脑卡慢问题