Linux文件系统
文件系统是文件存放在磁盘等存储设备上的组织方式。Linux文件系统采用了分层的体系结构,包括接口层,文件系统本身以及设备驱动程序等。
大纲 『
1, Linux文件系统简介
2, 文件的基本操作,包括创建,打开,关闭,读写,创建连接等。
3, 文件的属性,包括属性的获取与设置。
4,目录文件的操作,包括创建,删除,打开,关闭,读取,获取或更改当前工作目录等。
』
-10.01 :
一个磁盘可以划分多个分区,每个分区都是一个文件系统,都有自己的目录层次结构。
在LINUX系统中,各个磁盘分区上的目录不是并列的,而是挂在在同一个目录树上。
---文件系统的最小存储单位是块(Block), 大小由磁盘格式化时确定。ext2,ext3,vfat...
--块组 『1, Super Block. 2, Inode. 3, Data Block』
*** 超级块是文件系统中最重要的部分,它包含了文件系统的整体信息,如文件系统的大小等。
索引节点中包含了文件的相关信息,如文件的类型,权限,大小,建立时间以及对应的数据块信息。
每个文件系统都维护有一个索引节点表,每个文件或目录都与索引节点表中的唯一元素对应。
$ stat /bin/ls
-10.02 : 文件的基本操作; 间会命令 ll, stat.
-- int fd = open("test", O_CREAT, 00777); 777 -> 775
if(fd == -1) { perror("open error"); exit(1); }
printf("fd = %d\n", fd1);
函数原型 : void perror(const char* s);
进程创建一个文件时,文件的实际访问权限由 mode&(~umask) 决定。
errno 是一个全局变量,用于记录系统函数返回时的错误码。
--关闭文件 int close(int fd) 读写文件 read write , lseek()。
--文件的其他操作 dup(), symlink(), link(), unlink().
--文件属性 stat(), fstat(), access(), chmod(), chown(), utime(), fcntl().
--目录文件 mkdir(), opendir(), closedir(), readdir(), getcwd(), chdir().