随笔小屋 Logo
首页
瞬间
反馈
随笔小屋 Logo
首页 瞬间 反馈
  1. 首页
  2. linux
  3. 文件系统

文件系统

  • linux
  • 发布于 2025-09-20
  • 80 次阅读
flor
flor

ls -i 查看文件i节点号

文件类型

-  普通文件          元数据如存储类型、权限、大小、用户组、各种时间戳等存储在i节点,内容数据存储在数据块中
d  目录文件          有自己i节点,数据块存文件名和对应的i节点(硬链接)。根目录i节点固定,依次遍历查找。.当前目录i节点..上层目录i节点
s  本地套接字
c  字符设备
b  块设备
l  符号链接          ln -s 目标 新文件  有自己i节点,数据块存目标文件完整路径(软链接)       
p  有名管道          只有i节点,没数据块。表示一块存储区

打开/创建文件

#include<fcntl.h>
int open(char const* pathname, int flags, mode_t mode);
功能:打开已有文件或创建新文件
参数:pathname  文件路径
flags   状态标志,以下参数
      O_RDONLY  只读
      O_WRONLY  只写
      O_RDWR    读写
      O_APPEND  追加
      O_CREAT   不存在时创建,存在时打开
      O_EXCL    不存在时创建,存在时报错
      O_TRUNC   不存在时创建,存在时清空
mode    权限模式,仅创建新文件时有效,三位8进制表示
      
      r  读    4
      w  写    2
      x  执行  1
返回值:未被使用的最小文件描述符
权限掩码  umask

关闭文件

#include <unistd.h>
int close(int fd)
功能:关闭处于打开状态的文件描述符
参数:fd  处于打开状态的文件描述符

文件的内核结构

调用open时,内存中,文件表项存储文件状态标志、读写位置、v节点指针等信息,v节点存储i节点等。同时打开一个文件时维护多个文件表项

进程表中文件描述符表(指针数组)存储文件表项地址

文件描述符 == 文件描述符表中数组下标

系统内核为每个进程打开三个文件描述符,在unistd.h中被定义为三个宏

#define STDIN_FILENO 0 标准输入

#define STDOUT_FILENO 1 标准输出

#define STDERR_FILENO 2 标准错误

湘ICP备2025147565号-1
gongan beian 湘公网安备43102602000213号
CPU --% | 内存 0.00G/0.00G (0%) | 网络 无活动网卡
服务器资源占用 更新时间 --:--:--