1、磁盘遍历:
a)属于非标C语言函数,linux(苹果mac和ios)和windows两大系统提供的。
b)linux标准:https://blog.csdn.net/SweeNeil/article/details/84788542
#include<sys/types.h>
#include<dirent.h>
DIR* opendir (const char * path );
struct dirent *readdir(DIR *dp);
void rewinddir(DIR *dp);
int closedir(DIR *dp);
long telldir(DIR *dp);
void seekdir(DIR *dp,long loc);
c)windows标准:
https://blog.csdn.net/Jcrry/article/details/130091614
#include <io.h>
long _findfirst(const char *, struct _finddata_t *);
int _findnext(intptr_t handle,struct _finddata_t *fileinfo);
_findclose(HANDLE);
2、_findfirst函数说明:
a)long _findfirst(const char * sFileName, struct _finddata_t *fileinfo);
b)功能是获取与指定的文件名称匹配的第一个文件的信息,
c)若成功则返回第一个实例的句柄,否则返回-1L。
d)第一个参数可以代入具体单一的文件名,也可以用通配符*指定一群符合条件集合。
3、_findnext函数说明:
a)int _findnext(intptr_t handle,struct _finddata_t *fileinfo);
b)基于_findfirst返回的集合句柄,继续去获取剩余集合内所有文件的信息。
c)若成功则返回0,否则返回-1
4、递归函数:
a)在函数调用本函数
b)如果没有递归结束条件就是死递归,不断压栈会出现栈溢出。(崩溃)
c)线性递归类似于循环,能用循环就不要用递归。因为递归需要进出栈效率比循环要低很多。
d)在树状的数据结构中,就不得不使用递归函数,循环不能解决树状遍历。