linux的scandir函数,linux C++ scandir 的使用

本文详细介绍了Linux系统中的scandir函数,用于遍历目录并按特定条件筛选和排序文件。文章提供了函数定义、使用说明及示例代码,展示了如何结合过滤函数customFilter和排序函数alphasort实现对目录内容的操作。此外,还提到了释放内存的重要性以及Linux驱动开发的基础知识。
摘要由CSDN通过智能技术生成

() 头文件

#include

() 函数定义

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

#include

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 驱动开发

linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

【app】遍历目录所有文件

遍历目录所有文件   原创,转载时请注明,谢谢.邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:htt ...

linux 系统获得当前文件夹下存在的所有文件 scandir函数和struct dirent &ast;&ast;namelist结构体&lbrack;转&rsqb;

linux 系统获得当前文件夹下存在的所有文件 scandir函数和struct dirent **namelist结构体 1.引用头文件#include struct ...

Linux c 目录操作函数scandir

头文件#include   函数定义:int scandir(const char *dir,struct dirent **namelist,int (*filter ...

Linux服务器上安装织梦CMS

安装篇 第一步:配置防火墙(默认情况下,端口80和3306是拒绝访问的,在防火墙上进行配置): vi /etc/sysconfig/iptables(在"COMMIT"的上一行加上 ...

Linux下指定版本编译安装LAMP

说明: 操作系统:CentOS 6.5 64位 需求: 编译安装LAMP运行环境 各软件版本如下: MySQL:mysql-5.1.73 Apache:httpd-2.2.31 PHP:php-5.2 ...

linux查找webshell

原文出处:http://my.oschina.net/longquan/blog/155905 首先认识一下小马,一般大马容易暴露,骇客都会留一手,把小马加入正常PHP文件里面 <?php ev ...

linux 操作系统下c语言编程入门

2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理  ...

Centos下安装配置LAMP&lpar;Linux&plus;Apache&plus;MySQL&plus;PHP&rpar;

Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)   关于LAMP的各种知识,还请大家自行百度谷歌,在这里就不详细的介绍了,今天主要是介绍一下在Centos下安装,搭建一 ...

随机推荐

mock&period;js-无需等待,让前端独立于后端进行开发

概述 首先啦,我不认识mock.js的作者,带着需求找到mock.js让我觉得很惊艳. 相对于其他同类的框架的实现,mock.js超出了我的意料. 基于 数据模板 生成模拟数据. 基于 HTML模板 ...

zju&lpar;4&rpar;使用busybox制作根文件系统

1.实验目的 1.学习和掌握busybox相关知识及应用: 2.学会使用交叉编译器定制一个busybox: 3.利用该busybox制作一个文件系统: 4.熟悉根文件系统组织结构: 5.定制.编译ra ...

Android——不同activity之间数据传递

/* * 不同activity之间数据的传递 */ public class MainActivity extends Activity { private EditText et_name; @Ov ...

java出现no XXX in java&period;library&period;path的解决办法及eclipse配置

java一般使用两个path:classpath 和 java.library.path classpath是指向jar包的位置 java.library.path是非java类包的位置如(dll,s ...

dapper&plus;linq&plus;json&plus;ztree构建树

dapper获取实体的集合 /// /// 获取表tb_sys_zhuowei所有数据 /// public IEnumerable& ...

六星经典CSAPP-笔记&lpar;3&rpar;程序的机器级表示

1.前言 IA32机器码以及汇编代码都与原始的C代码有很大不同,因为一些状态对于C程序员来说是隐藏的.例如包含下一条要执行代码的内存位置的程序指针(program counter or PC)以及8个 ...

fdisk 分区及 swap

使用虚拟机创建挂载点 一,创建 windows 硬盘        创建

apache2 配置虚拟主机

查看 apache2 的配置位置: whereis apache2 我的在:/etc/apache2 sites-available  文件夹下面放的就是 虚拟站点的配置文件: 随便复制一个改改: c ...

js 字符串indexof与search方法的区别

1.indexof方法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. 语法: 注意:有可选的参数(即设置开始的检索位置). 2.search方法 search() 方法用 ...

手势识别:GestureDetector

当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等,我们知道View类有个View.OnTouchListener接口,通过重写他的onTouch(View v, ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值