码迷,mamicode.com
首页 > 其他好文 > 详细

[文件系统]文件系统学习笔记(十)---杂项

时间:2014-11-01 23:01:52      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   os   ar   使用   sp   strong   文件   

1,在一个系统上,比如smartphone平台,有很多分区,比如/data和/system分区都是ext4文件系统,但是系统中还是只有一个file_system_type的成员,不过每个分区对应的ext4文件系统对应不同的super_block,fs_supers就是将这些相同文件系统不同的super block链接起来形成双向循环链表,fs_supers是链表头,链表元素由super_block结构体的s_instance成员表示。系统中所有的super_block由super_block结构体的s_list链接成双向循环链表,表头是super_blocks变量表示。

 

2,伪文件系统是不能装载的文件系统,因而不能从用户空间直接以文件或者目录的方式看到。系统中所有的伪文件系统可以从/proc/filesystem中获取

 

3,dumpe2fs命令 dumpe2fs

 

4,内存中文件系统第一个block是super block,每个group都有一个super block,后面的superblock是第一个super block的备份,group是有很多block组成的,比如32768

 

5,inode的大小是由各个文件系统本身决定,比如256B等等

 

6,查看磁盘和目录容量的命令分别是df,du.

 

7,一个文件至少占用一个block,若文件太大则占用多个block.

 

8,当我们删除文件的时候,只是把Inode标记为可用,文件在block中的内容是没有被清除的,只有在有新的文件需要占用block的时候,才会被覆盖,这也是我们删除文件还可以恢复的原因。

 

9, stat命令查看文件的时候里面每个成员的含义?
答:stat命令的使用如以下截图所示,每个成员的含义如下:
File:表示文件名。              
Blocks:表示该文件占用的块数,通常linux一个块大小为512Byte,而文件系统块的大小为4096,4096/512=8,如下截图表示f1文件占用8个块.也就是一个文件最少占用8 block。
Device:表示的是存放文件的设备。
Inode:表示的是该文件对应的inode的号。
Size:表示的是文件的大小。
Links:表示的是硬链接的个数。
IO Block:系统格式化block的大小,文件系统块的大小。
Accesss:表示的是最后一次访问文件时间,读一次该文件,该时间就会改变。
Modify:表示的是最后一次修改文件的时间,对文件修改一次该时间就会更新,比如用VI命令后保存文件。
Change:表示的是最后一次修改文件熟悉信息(inode节点)的时间,比如使用chmod命令更新该文件的权限。

 

10,每个进程最多打开32个文件,如果一个进程同时打开32个文件的话是否可以扩展?
答:在linux内核里分配文件描述符的时候,系统默认每个进程同时打开的文件个数是32,如果超过的话会在alps/kernel/fs/File.c文件里的alloc_fd()函数里的expand_files()函数里进行扩展。但是最大扩展个数的限制是1024,也就是即使扩展,一个进程同时打开文件个数为1024.不过这个1024用户还是可以通过命令去修改。

 

11,linux编程如何查看文件系统相关信息statfs函数。

查看文件系统相关信息

 

[cpp] view plaincopy
 
  1. #include <sys/vfs.h>   
  2. int statfs(const char *path, struct statfs *buf);   
  3. int fstatfs(int fd, struct statfs *buf);   


参数:   
path: 位于需要查询信息的文件系统的文件路径名。     
fd: 位于需要查询信息的文件系统的文件描述词。 
buf:以下结构体的指针变量,用于储存文件系统相关的信息 

 

 

[cpp] view plaincopy
 
  1. struct statfs {   
  2.     long    f_type;     /* 文件系统类型  */   
  3.    long    f_bsize;    /* 经过优化的传输块大小  */   
  4.    long    f_blocks;   /* 文件系统数据块总数 */   
  5.    long    f_bfree;    /* 可用块数 */   
  6.      long    f_bavail;   /* 非超级用户可获取的块数 */   
  7.    long    f_files;    /* 文件结点总数 */   
  8.    long    f_ffree;    /* 可用文件结点数 */   
  9.    fsid_t  f_fsid;     /* 文件系统标识 */   
  10.    long    f_namelen;  /* 文件名的最大长度 */   
  11. };   



 

[文件系统]文件系统学习笔记(十)---杂项

标签:blog   http   io   os   ar   使用   sp   strong   文件   

原文地址:http://www.cnblogs.com/zhiliao112/p/4067850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!