【文件IO】认识文件

文章目录

  • 认识文件
  • 文件的结构和目录
  • 文件路径

认识文件

我们先来认识狭义上的文件(file),针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存一个整体,而是独立成一个个单位进行保存,这个独立的单位就被抽象成文件的概念。文件除了数据内容之外,还要一部分信息,比如:文件名、文件类型、文件大小等,这些信息并不作为文件的数据而存在,我们把这部分信息视为文件的元信息。

在这里插入图片描述

文件的结构和目录

随着文件越来越多,我们如何进行文件的组织呢,一种合乎自然的想法出现了,就是按照层级结构进行组织,也就是我们数据结构中学习过的树形结构。这样,一种专门用来存放管理信息的特殊文件诞生了,也就是我们平时所谓文件夹(folder)或者目录(directory)。

在这里插入图片描述

文件路径

从树型结构的角度来看,树中的每个结点都可以被一条从根开始,一直到达的结点的路径所描述,而这种描述方式就被称为文件的绝对路径

除了可以从根开始进行路径的描述,我们可以从任意结点出发,进行路径的描述,而这种描述方式就被称为相对路径,相对于当前所在结点的一条路径。
即使是普通文件,根据其保存数据的不同,也经常被分为不同的类型,我们一般简单的划分为文本文件和二进制文件,分别指代保存被字符集编码的文本和按照标准格式保存的非被字符集编码过的文件。Windows 操作系统上,会按照文件名中的后缀来确定文件类型以及该类型文件的默认打开程序。但这个习俗并不是通用的,在 OSX、Unix、Linux 等操作系统上,就没有这样的习惯,一般不对文件类型做如此精确地分类。
不同的后缀代表不同的文件格式,它们的作用也不同,例如:exe在Windows中一般代表是可执行程序,dll代表动态库(不包含入口的一组程序)等等。
文件由于被操作系统进行了管理,所以根据不同的用户,会赋予用户不同的对待该文件的权限,一般地可以认为有可读、可写、可执行权限。

在这里插入图片描述

通过权限系统对数据安全起到保护作用Windows 操作系统上,还有一类文件比较特殊,就是平时我们看到的快捷方式(shortcut),这种文件只是对真实文件的一种引用而已。其他操作系统上也有类似的概念,例如,软链接(soft link)等 。最后,很多操作系统为了实现接口的统一性,将所有的 I/O 设备都抽象成了文件的概念,使用这一理念最为知名的就是Unix、Linux 操作系统 —— 万物皆文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/129202.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jbase代码生成器(成型篇)

上一篇说到通用码表可以解决百分之八十的基础维护功能,剩下的百分二十的需要级联维护的界面可以用代码生成器生成代码,基于生成的代码拷贝再组装界面,来解决这百分之二十的工作量里的百分之八十工作量。 首先实现代码生成器 Class Jbase.Ma…

创建一个事务级临时表或者会话级临时表继续测试,在什么情况下临时表里的数据会消失

目录 一、测试事务级临时表 1、创建事务级临时表 2、插入测试数据 3、查看表中的数据 4、提交事务 5、再次查看表中数据 二、测试会话级临时表 1、创建会话级临时表 2、插入测试数据 3、查看表中的数据 4、提交事务再次查看数据 5、关闭当前会话 6、再次进入数据库…

项目管理之如何出道(下)

前言 是谁用烛火照亮整个中国?是一伙伙行走在高压线上的电力工人; 是谁用水枪保护千家万户?是一组组穿梭于大街小巷的消防队伍; 是谁用身体捍卫国防边境?是一队队跋涉在高山深林的可爱战士。 那么作为IT业界的我们&…

GPIO实验:ARM汇编代码实现LED灯亮灭控制

GPIO实验:ARM汇编代码实现LED灯亮灭控制 一、 汇编工程模板Makefile分析 NAMEasm-led #指定编译的源文件名字 CROSS_COMPILE arm-linux-gnueabihf- #指定交叉编译工具链前缀CC $(CROSS_COMPILE)gcc #指定gcc名字LD $(CROSS_COMPILE)ld #指定链接器名字…

“第六十五天”

固态硬盘:SSD 原理:基于闪存技术Flash Memory ,属于电可擦除ROM,即EEPROM; 由闪存翻译层和存储介质组成;闪存翻译层负责翻译逻辑块号,找到对应页,存储介质是由多个闪存芯片构成的&…

Pycharm常用快捷键和替换正则表达式

原生快捷键的使用: 1.CtrlF:查找 2.CtrlZ:返回上一步 3.Alt 鼠标左键选择:多行同时编辑(上、下、左、右键能够移动光标) 按住Ctrl,左键点击,定位光标 编辑过程 URL常用的替换正则表达式&am…

阿里云99元的主机到底怎么样?

我是卢松松,点点上面的头像,欢迎关注我哦! 在云栖大会上,阿里云推出了一款绝对超级超值的99元云服务器,并号称是11月销量王。什么?云栖大会11月2号结束的,你就号称11月销量王,这是未卜先知啊。…

【算法 | 数论 No.1】AcWing1246. 等差数列

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【AcWing算法提高学习专栏】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程&a…

【异常----finally和自定义异常】

文章目录 finally练习问题 异常的处理流程【异常处理流程总结】自定义异常类 finally 有些特定的代码,不论程序是否发生异常,都需要执行,比如程序中打开的资源:在程序正常或者异常退出时,必须要对资源进进行回收。另外…

2023.11.10联测总结

T 1 T1 T1求的是有多少个区间的异或和是 k k k的因子, n , k ≤ 1 0 5 n,k \leq 10^5 n,k≤105。 这道题用前缀和维护一下,暴力枚举所有区间就有 80 80 80分。 有一瞬间想过枚举因数,但是脑抽以为要 O ( n ) \mathcal O(n) O(n)枚举&#x…

计算机技术专业CSIT883系统分析与项目管理介绍

文章目录 前言一、学科学习成果二、使用步骤最低出勤要求 前言 本课程介绍了信息系统开发中的技术和技术,以及与管理信息技术项目的任务相关的方法和过程。 它研究了系统分析师、客户和用户在系统开发生命周期中的互补角色。 它涵盖了引出系统需求的不同事实调查技…

Java进阶API第二章

Java进阶API第二章 一. 抛出企业问题,脱离main测试,模块化编程 1.学校里如何测试的 //学校教的测试方法 public static void main(String[] args) {//2.本地测试//3.调用函数//4.看输出,查看结果是否符合预期//5.预期结果和测试结果是通过人工…

CSS 文字溢出省略号显示

1. 单行文本溢出显示省略号 需要满足三个条件,添加对应的代码: (1)先强制一行内显示文本; (2)超出的部分隐藏; (3)文字用省略号来替代省略的部分&#xf…

创建两个简单表A,B 。AB表有相关联的列。并在关联列上创建索引

目录 一、创建两个简单表,并进行外键关联 1、创建表A 2、创建表B,并且关联表A 二、在关联列上创建索引 三、检查是否成功 一、创建两个简单表,并进行外键关联 1、创建表A CREATE TABLE A (id NUMBER PRIMARY KEY,name VARCHAR2(50),d…

3.5、Linux:命令行git的使用

个人主页:Lei宝啊 愿所有美好如期而遇 在Linux Centos7.6下安装git yum -y install git 注册一个gitee账号 进去注册就好,记住自己的用户名和密码。 创建一个仓库 点击复制,接着就可以在Linux上使用了 git clone git clone 刚才复制的地…

物联网AI MicroPython学习之语法 ustruct 打包和解压原始数据类型

学物联网,来万物简单IoT物联网!! ustruct 介绍 ustruct提供打包和解压原始数据类型的功能。 默认情况下,C类型以机器的本机格式和字节顺序表示,并在必要时通过跳过填充字节来正确对齐(根据C编译器使用的规…

generic webhook trigger 插件

generic webhook trigger 插件 通用 webhook 通过curl 请求触发流水线 rootubuntu20:~/luohuiwen/spring-boot-helloWorld# openssl rand -base64 32 QNJvWjUiNvNhQ4bKleI/5h2iZTKjSMREAvSJRvcM0 curl -X POST -H "Content-Type: application/json" -d { "ref…

C++:关联式容器map的使用

1、map的简介 map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。 在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同,并…

操作系统·处理机调度死锁

3.1 处理机调度概述 3.1.1 处理机调度概述 高级调度 (High level Scheduling)决定把外存上哪些作业调入内存、创建进程、分配资源。高级调度又称作业调度、长程调度或宏观调度。只在批处理系统中有高级调度。 中级调度 (Middle level Scheduling)完成进程的部分或全部在内、…

K8S容器持续Terminating无法正常关闭(sider-car容器异常,微服务容器正常)

问题 K8S上出现大量持续terminating的Pod,无法通过常规命令删除。需要编写脚本批量强制删除持续temminating的Pod:contribution-xxxxxxx。 解决 获取terminating状态的pod名称的命令: # 获取media命名空间下,名称带contributi…