我有以下C代码:
#include <ftw.h>
#define MAXPATHLEN 100
static time_t createtime = 0;
static char ftwpath[MAXPATHLEN];
[...]
ftw(somepath, get_writedir, 10);
if (ftwpath[0] == '\0') {
//Code assuming that the directory does not exist.
} else {
//Some code handeling
}
这是ftw调用的方法:
int get_writedir(const char *path, const struct stat *sb, int typeflag)
{
if (typeflag == FTW_D && sb->st_ctime > createtime) {
createtime = sb->st_ctime;
strlcpy(ftwpath, path, MAXPATHLEN);
}
return 0;
}
一般来说,当typeflag设置为FTW_F而不是FTW_D时,此代码会有所扩展。当我做后者时,没有任何反应。 当我执行上述操作时:我并不总是获得“最新创建的目录”。我在这里做错了什么?