Phi*_*ber 3 c linux gcc dirent.h
从dirent.h我们可以看到 DIR 结构是
struct DIR {
struct dirent ent;
struct _WDIR *wdirp;
};
Run Code Online (Sandbox Code Playgroud)
和的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];
};
Run Code Online (Sandbox Code Playgroud)
我的问题是:如果我们只有 DIR * struct -let say dir -并且从这个结构中我们想要提取目录名称,通常我们应该?- 做:
const char * dirname = dir->ent.d_name;
Run Code Online (Sandbox Code Playgroud)
但是这不能编译,错误是:
dereferencing pointer to incomplete type
Run Code Online (Sandbox Code Playgroud)
谢谢
您不应该直接访问 a 的内容DIR。
要遍历目录中的条目,您需要调用readdir,并将DIR *从 返回的a 传递给它opendir。这将返回一个dirent *,您可以从中读取目录条目的名称。
NULL读取所有条目后,该函数将返回。
| 归档时间: |
|
| 查看次数: |
8143 次 |
| 最近记录: |