在UNIX下面的文件夹中总有两个文件..和.,这两个分别代表了本目录和上一级的目录。而在根目录中,由于根目录没有上一级的目录,所以根目录中的..和.是相同的。这个要怎么验证么,主要就是通过查看inode,在ext系列文件系统中,inode唯一地标识了一个文件或者一个文件夹。那么我想要通过c程序来验证,该怎么做呢,代码如下:
#include<sys/types.h> #include<dirent.h> #include<string.h> #include<stdlib.h> #include<stdio.h> int main(int argc,char *argv[]) { DIR *dp; //打开目录的句柄 struct dirent *dirp; //保存打开目录信息的结构 if((dp=opendir("/")) == NULL) //打开根目录,如果无法打开,则输出错误信息 { printf("Can't open the directory /!\n"); exit(-1); } while((dirp=readdir(dp)) != NULL) //从根目录中不断读取文件名 { if((strcmp(dirp->d_name,".")==0) || (strcmp(dirp->d_name,"..")==0)) //如果遇到..和.文件,则输出inode
用c程序验证/目录下面..和.是相同的
本文介绍了如何在UNIX系统下通过比较文件的inode来验证根目录中..和.是否相同。这两个特殊目录分别代表当前目录和上级目录。在根目录中,由于没有上一级,它们的inode理论上应该是相同的。作者分享了一段C语言代码来实现这一验证过程。
摘要由CSDN通过智能技术生成