用c程序验证/目录下面..和.是相同的
2014-09-15 19:52
78 查看
在UNIX下面的文件夹中总有两个文件..和.,这两个分别代表了本目录和上一级的目录。而在根目录中,由于根目录没有上一级的目录,所以根目录中的..和.是相同的。这个要怎么验证么,主要就是通过查看inode,在ext系列文件系统中,inode唯一地标识了一个文件或者一个文件夹。那么我想要通过c程序来验证,该怎么做呢,代码如下:
这个思路主要是这样的,打开一个目录,然后不断读取这个目录中的文件名,如果文件名是.或者..的话,那么就把这个文件的名字和它的inode一起输出,这样就能够看到..和.这两个文件的inode是相同的了,运行结果如下:
#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和文件名 { printf("%s's inode is %d\n",dirp->d_name,dirp->d_ino); } } closedir(dp); //关闭目录句柄 return 0; }
这个思路主要是这样的,打开一个目录,然后不断读取这个目录中的文件名,如果文件名是.或者..的话,那么就把这个文件的名字和它的inode一起输出,这样就能够看到..和.这两个文件的inode是相同的了,运行结果如下:
相关文章推荐
- 实验3阅读下面程序、分析说明运行结果,并上机验证。
- mysql安装目录bin下面可执行程序命令详解
- 验证视图MAC失败。如果此引用程序由网络场或群集承载,请确保<machineKey>配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerateP>
- 程序沙盒目录,下面继续来看一下操作文件的两个类
- mysql安装目录bin下面可执行程序命令详解
- 网站目录防篡改程序,perl web目录md5文件验证
- 复制当前目录及其子目录下面的所有的txt文件,如果有文件名相同则重命名为bak01,bak02 ......
- 5.5 编写一个程序, 对于二维数组 b[2][3]={{1,2,3},{4,5,6}}, 验证*(*(b+i)+j)、 *(b[i]+j)、 (*(b+i))[j]与 b[i][j]是相同的。
- 微信小程序业务域名配置:校验文件验证失败,请下载校验文件,上传到服务器指定的目录
- 将指定目录下的某些 af8e 相同类型的文件打成zip包存放到指定目录下面并删除原文件
- rman 相同备份到不同目录下面
- [置顶] win32命令行小程序获取指定文件夹或者目录下面的所有文件大小,文件数量,目录数量
- /编写一个程序, 对于二维数组 b[2][3]={{1,2,3},{4,5,6}}, 验证*(*(b+i)+j)、 *(b[i]+j)、 //(*(b+i))[j]与 b[i][j]是相同的。
- win32命令行小程序获取指定文件夹或者目录下面的所有文件大小,文件数量,目录数量
- 身份证验证程序代码
- 检测系统是否已经运行了相同的程序
- 如何检测系统是否已经运行了相同的程序。
- 将指定目录下面得所有文件名从中文转化为拼音,并保存为html
- java程序的递归算法,列出某个目录下的所有子目录和文件
- 取得智能设备程序主目录(Compact Framework)