在linux下的c语言编程时使用readdir的时候读取到的“.”和“..”怎么去掉?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在linux下的c语言编程时使用readdir的时候读取到的“.”和“..”怎么去掉?相关的知识,希望对你有一定的参考价值。

我用如下的判断根本判断不出来:
if((direntp->d_name==".")||(direntp->d_name==".."))
而用printf打印出来的direntp->d_name的值确实就是“.”和“..”
郁闷了
谢谢你啊 ,搞定了,不过我想问一下在c中为什么直接用我的那个方法判断不出来呢???

//跳过他们就行,例如
while ((dirp = readdir(dp)) != NULL)
if (strcmp(dirp->d_name, ".") == 0 ||
strcmp(dirp->d_name, "..") == 0)
continue; /* ignore dot and dot-dot */

/* do something */


//什么叫判断不出来?你的具体的语句是什么?
参考技术A "."和“..”是字符,不可以直接赋值,要用strcmp函数比较

以上是关于在linux下的c语言编程时使用readdir的时候读取到的“.”和“..”怎么去掉?的主要内容,如果未能解决你的问题,请参考以下文章

怎样使用C语言列出某个目录下的文件?

C语言readdir和opendir

linux中readdir是按照啥顺序读一个文件夹下的文件的?

Linux c —— opendir函数和readdir函数内涵及用法(转)

怎么在linux下的.C文件中添加文件信息

read的Linux C函数