linux C++ scandir 的使用
2024-10-21 13:22:23
() 头文件
#include <dirent.h>
() 函数定义
int scandir(const char *dir,struct dirent **namelist,int (*filter)(const void *b),
int ( * compare )( const struct dirent **, const struct dirent ** ) );
int alphasort(const void *a, const void *b);
int versionsort(const void *a, const void *b); () 使用说明 函数scandir扫描dir目录下以及dir子目录下满足filter过滤模式的文件,返回的结果是compare函数经过排序的,并保存在 namelist中。注意namelist是通过malloc动态分配内存的,所以在使用时要注意释放内存。alphasort和versionsort 是使用到的两种排序的函数。
当函数成功执行时返回找到匹配模式文件的个数,如果失败将返回-。
() 使用示例 /*
scandir函数
*/
#include <stdio.h>
#include <dirent.h>
int customFilter(const struct dirent *pDir)
{
if (strncmp("test", pDir->d_name, ) ==
&& pDir->d_type & 0x04
&& strcmp(pDir->d_name, ".")
&& strcmp(pDir->d_name, ".."))
{
return ;
}
return ;
}
int main()
{
struct dirent **namelist;
int n;
int i;
n = scandir(".", &namelist, customFilter, alphasort);
if (n < )
{
perror("scandir");
}
else
{
for (i = ; i < n; i++)
{
printf("%s\n", namelist[i]->d_name);
free(namelist[i]);
}
free(namelist);
}
}
最新文章
- linux date时区修改
- CI框架(一)
- matrix-tree
- 判断两个IP是否属于同一子网
- 做中学learning by doing——个人感想20155312张竞予
- HTML 笔记,持续更新
- Xcode 编辑时的爆炸效果
- IEnumerable接口的实现
- 前端工作流程自动化——Grunt/Gulp 自动化
- 计算1到n整数中,字符ch出现的次数
- (转)HTML特殊字符
- log4j的用法
- git代理配置
- scala 入门Eclipse环境搭建
- 设计模式学习--Prototype
- N的多次方Python实现
- 解决EF使用context.Database.SqlQuery时NotMapped属性列为空null的问题(转载)
- HGOI20180823 三校联考
- UVA10298 Power Strings
- idea 码云 项目上传
热门文章
- Apache上部署Django
- .NET EF 框架-实现增删改查
- 【转载】aspx,ascx和ashx使用小结
- [转]Linux shell中的那些小把戏
- Atitit.ati&;#160;dwr的原理and设计&;#160;attilax&;#160;总结&;#160;java&;#160;php&;#160;版本号
- php程序执行过程--非宏观和微观而是写的程序一行一行的路径----利用xdebug了解一段程序的执行过程----覆盖率
- android 获取手机设备品牌
- CPU调度算法
- js嵌套Struts2标签
- 分布式服务框架 Zookeeper(一)介绍