fileno:
#include <stdio.h>
main()
{
FILE *fp;
int fd;
fp = fopen("/etc/passwd", "r");
fd = fileno(fp);
printf("fd = %d\n", fd);
fclose(fp);
}
一.fileno()函数-CSDN博客https://blog.csdn.net/TuxedoLinux/article/details/80585259
typedef struct _IO_FILE FILE
>log.txt
清空文件
typedef struct _IO_FILE FILE; 在/usr/include/stdio.h
磁盘的每一个扇区均为(512byte)
1.磁头来回摆动的时候就是在确认磁道的位置
2.通过磁道找到对应的扇区
3.盘片旋转的时候就是再让磁头定位扇区。
磁头数=面数 且磁头是共进退的。
如何在磁盘中定位扇区?
先定位在那个磁道(track)柱面(cylinder),在定位磁头(head)(定位盘面),最后在完成扇区(sector)的定位。
Block Group:ext2文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相 同的结构组成。政府管理各区的例子
超级块(Super Block):存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量, 未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的 时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个 文件系统结构就被破坏了
GDT,Group Descriptor Table:块组描述符,描述块组属性信息,有兴趣的同学可以在了解一下 块位图(Block Bitmap):Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没 有被占用
inode位图(inode Bitmap):每个bit表示一个inode是否空闲可用。 i节点表:存放文件属性 如 文件大小,所有者,最近修改时间等 数据区:存放文件内容
iNode table 保存了分组内部所有的可用(已用和未用)iNode,保存的是分组内部所有文件的数据块
Super Block:中保存的是整个文件系统的信息(会在其他部分做备份)
Linux中:文件=内容+属性
ls -li
查看每个文件对应的文件编号。