gpt4 book ai didi

c 编程 - 来自 DIR* 结构的目录名

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:52 24 4
gpt4 key购买 nike

来自 dirent.h我们可以看到 DIR 结构是

struct DIR {
struct dirent ent;
struct _WDIR *wdirp;
};

dirent结构是

struct dirent {
/* Always zero */
long d_ino;

/* File position within stream */
long d_off;

/* Structure size */
unsigned short d_reclen;

/* Length of name without \0 */
size_t d_namlen;

/* File type */
int d_type;

/* File name */
char d_name[PATH_MAX+1];
};

我的问题是:如果我们只有 DIR * struct -让我们说 dir - 并且我们想从这个结构中提取目录名称,通常我们 - 应该吗? - 做:

const char * dirname = dir->ent.d_name;

然而这不能编译,错误是:

dereferencing pointer to incomplete type

谢谢

最佳答案

您不应该直接访问 DIR 的内容。

要遍历目录中的条目,您需要调用 readdir,向其传递从 opendir 返回的 DIR *。这将返回一个 dirent *,您可以从中读取目录条目的名称。

当所有条目都被读取后,该函数将返回 NULL

关于c 编程 - 来自 DIR* 结构的目录名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49392870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com