gpt4 book ai didi

c++ - 不完整类型的无效使用 'DIR'

转载 作者:行者123 更新时间:2023-11-30 00:40:07 24 4
gpt4 key购买 nike

我正在尝试编译这段代码,它在 Windows 和 Linux 上运行良好(Code::Blocks):

/* Edit: Includes */
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <...>
/**/

/* === */

/* Function code */
DIR *dp;
dirent *ep;
string name_parent;

dp = opendir(somepath);
name_parent = dp->dd_name; //error
/**/

由于 Windows 上的路径名不区分大小写,我可以读取“c://program files”之类的用户输入并获得“正确”路径“C:\Program Files*”(星号除外 - 或者"F://"-> "F:*")。我还使用此变量来获取具有绝对路径值的目录列表,因为 ep->d_name(当然在一些 readdir() 之后)返回相对于某个路径的路径。

在 Linux 上,我得到一个编译器错误(对于“dp->dd_name”):

error: invalid use of incomplete type 'DIR'

我是不是忘记了什么?还是逻辑错误?

编辑:我在上面添加了(我已经在使用的)包含内容。

最佳答案

/* Edit: Includes */
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <...>
/**/

/* === */

/* Function code */
DIR *dp;
dirent *ep;
string name_parent;

dp = opendir(somepath);
ep = readdir(dp);
name_parent = ep->d_name;

/**/

变量 d_name 存在于结构 dirent 中,它给出了目录的名称

关于c++ - 不完整类型的无效使用 'DIR',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889304/

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