DT_DIR未定义

Ria*_*iaD 4 c c99 readdir

我想检查文件是否返回readdir目录.我尝试使用DT_DIR常量(man readdir如上所述)但它未定义.我应该包含哪些文件才能获得它?

现在我用

#include <sys/types.h>
#include <dirent.h>
#include <stdlib.h>
#include <errno.h>
Run Code Online (Sandbox Code Playgroud)

gcc版本是4.6.1

编译字符串:

gcc a.c --std=c99 -Wall
Run Code Online (Sandbox Code Playgroud)

Mat*_*Mat 9

您需要_BSD_SOURCE定义功能测试宏以获取这些定义,它们不是标准的,并且GCC在编译C99时不定义该宏.

gcc -std=c99 -D_BSD_SOURCE -Wall a.c
Run Code Online (Sandbox Code Playgroud)

  • 从 glibc 2.19 版本开始,应该使用宏“_DEFAULT_SOURCE”而不是“_BSD_SOURCE”。 (2认同)