1、内存与外存 (文件) 对比

内存(变量、数组、结构体)

  1. 读写速度快

  2. 程序结束、掉电,数据直接丢失

  3. 存储空间小,硬件价格昂贵

文件(存放在硬盘等外存)

  1. 读写速度比内存慢

  2. 掉电数据不会丢失,可以长期保存

  3. 存储空间大,价格相对内存便宜

Linux 中一切皆文件:普通文件、硬件设备/dev/fb0、目录文件夹全部抽象成文件。 示例:xxx.cxxx.jpg/dev/fb0/etc都属于文件。

2、Linux 的 7 种文件类型

使用命令 ls -l 文件名 可以查看文件类型,第一字符代表类型:

标识

类型

说明举例

-

普通文件

.c.h.txt、图片、可执行程序 a.out

d

目录文件

文件夹

c

字符设备文件

鼠标、键盘、显示器,硬件设备,按字节流访问

b

块设备文件

硬盘、SD 卡等存储设备,按块读写

l

符号链接 (软连接)

类似 Windows 快捷方式

s

套接字 socket 文件

用于网络编程、本地进程通信

p

管道 pipe 文件

进程间通信使用

普通文件分为两类

  1. 二进制文件:内存原始 0/1 存储,如 mp3、png、a.out 可执行程序

  2. ASCII 文本文件:存储字符,如.c.h.txt

查看工具:

  • cat:查看文本文件

  • od -c:可以查看二进制文件内容

3、Linux 两种文件操作方式

IO = Input/Output,输入输出,对文件读写。

  1. 标准 IO:C 标准库提供的库函数,头文件<stdio.h>

例如printfscanf;操作对象:FILE* 文件流指针

  1. 文件 IO(系统调用):Linux 内核提供接口,操作系统原生 API

没有封装的底层接口。

文件操作通用思想(两种 IO 都遵守)

  1. 打开文件

  2. 读 / 写文件

  3. 关闭文件

man 手册查看帮助规则

  1. man 1 命令:查看 Linux shell 命令(ls、cat)

  2. man 2 系统调用:内核接口,如open()

  3. man 3 库函数:C 库函数,如fopen()

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐