一、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)相关推荐

  1. Linux-正则表达式的POSIX规范及流派

    Linux/Unix工具与正则表达式的POSIX规范 对正则表达式有基本了解的读者,一定不会陌生『\d』.『[a-z]+』之类的表达式,前者匹配一个数字字符,后者匹配一个以上的小写英文字母.但是如果你 ...

  2. 《安富莱嵌入式周报》第280期:支持在线仿真编程的网页版电子开发,CAN总线防攻击实现,BigFAT 规范打破了 FAT 每个文件 4GB 的限制

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  3. linux 时区文件的规则,linux – 如何将POSIX时间转换为Olson时区文件...

    因为我需要它来处理我的特殊情况,所以我做了一个小的bash脚本. 我知道这并不是涵盖所有情况.但至少你可以用它作为参考. 我的任务是解析字符串: "EST%dEDT%d,M%d.%d.%d/ ...

  4. Shell编程规范与变量(shell编程规范,执行脚本文件的四种方式,管道符号与重定向,shell变量的作用于类型)

    文章目录 Shell脚本概述 Shell脚本的概念 Shell的作用 Shell编程规范 重定向与管道 Shell脚本变量 自定义变量 特殊变量 Shell脚本概述 Shell Script ,She ...

  5. [转]Linux内核基础与常用命令总结

    ##这部分内容主要是基于一些关于Linux系统的内核基础和基本命令的学习总结,内容不全面,只讲述了其中的一小部分,后续会再补充,如有错误,还请见谅. Linux操作系统 Linux操作系统博大精深,其 ...

  6. 云计算——Google云计算原理与应用(Google文件系统GFS)

    目录 1.Google文件系统GFS 2.系统架构 3.GFS的特点 4.容错机制 5.系统管理技术 1.Google文件系统GFS Google文件系统(Google File System,GFS ...

  7. 分布式存储技术及应用

    根据did you know(http://didyouknow.org/)的数据,目前互联网上可访问的信息数量接近1秭= 1百万亿亿 (1024).毫无疑问,各个大型网站也都存储着海量的数据,这些海 ...

  8. 云计算的概念,发展现状,实现机制,Google云计算原理

    第1章  绪论 很少有一种技术能够像"云计算"这样,在短短的两年间就产生巨大的影响力.Google.亚马逊.IBM和微软等IT巨头们以前所未有的速度和规模推动云计算技术和产品的普及 ...

  9. 五分钟了解什么是Google文件系统(GFS)?

    简介 Google文件系统是构建在廉价服务器之上的大型分布式文件系统.它将服务器故障视为正常现象,通过软件的方式自动容错,在保证系统可靠性和可用性的同时,大大降低系统的成本 系统架构 GFS系统的节点 ...

最新文章

  1. USB和串口(COM)的区别,以及相互转换
  2. python 数据结构-字典
  3. java避免空指针异常_避免Java中的空指针异常
  4. matlab delete、clf、cla、close、closereq删除对象
  5. n个字符串按照字典序排列
  6. 学习ASP.NET MVC的资料推荐
  7. gulp——用自动化构建工具增强你的工作流程
  8. iis 下的 selfssl
  9. 使用ASM实现动态代理
  10. 计算机软考做题app,计算机软考真题app
  11. Python POST 修改某计步APP的数据
  12. metaRTC5.0实现webrtc的TURN支持
  13. 神舟笔记本电脑进入u启动之BIOS设置方法
  14. 自然语言处理技术之准确率(Precision)、召回率(Recall)、F值(F-Measure)简介
  15. Linux 用户账号安全管理,文件系统和日志
  16. python牛顿迭代法求方程的根_python实现迭代法求方程组的根过程解析
  17. 马尔可夫毯(Markov Blanket)
  18. js 写一个任意类型转浮点小数点保留两位
  19. 计算机毕业设计之java+ssm基于web的医院门诊互联电子病历管理信息系统
  20. 新电脑Linux反应慢怎么回事,电脑反应慢怎么处理 教你几招解决电脑卡慢问题

热门文章

  1. 微信小程序 Unexpected end of JSON input
  2. thinkphp开发的活动报名小程序源码带后台管理完整的报名小程序源码
  3. 超好看的B站首页顶部景深动态特效源码
  4. sql复制表定义及复制数据行
  5. IIS 5,6,7区别
  6. .Net面试题汇总(一) 帮你轻松过笔试关
  7. 如何通过使用 64 位版本 Windows 查看系统注册表 WOW6432Node
  8. WPE(Winsock Packet Editor)
  9. 自己动手架设linux下Web服务器(图)2
  10. Oracle及Oracle客户端、PLSQL安装的一些问题