c - 使用ftw库进行linux c编译

标签 c linux

我有简单的代码:

  1 #include <ftw.h>
  2 #include <stdio.h>
  3 #include <stdlib.h>
  4 #include <string.h>
  5
  6 static int display_info(const char *fpath, const struct stat *sb, int tflag, struct FTW *ftwbuf){
  7     printf("%-3s %2d %711d  %-40s %d %s\n", tflag == FTW_D) ? "d" :
  8         (tflag == FTW_DNR) ? "dnr" : (tflag == FTW_DP) ? "dp" : (tflag == FTW_F) ? "f" :
  9         (tflag == FTW_DP) ? "dp" : (tflag == FTW_SL) ? "sl" : (tflag == FTW_SLN) ? "sln" : "?", ftwbuf->level, (long long) sb->st_size, fpath, ftwbuf->base, fpath + ftwbuf->base);
 10         return 0;
 11 }
 12
 13 int main (int argc, char ** argv){
 14     int flags = 0;
 15     if( argc > 2 && strchr(argv[2], 'd') != NULL) flags |= FTW_DEPTH;
 16     if( argc > 2 && strch(argv[2], 'p') != NULL) flags |= FTW_PHYS;
 17     nftw((argc < 2) ? "." : argv[1], display_info, 20, flags);
 18
 19     exit(EXIT_SUCCESS);
 20 }

当我想编译时:

gcc -o main main.c

我遇到一些问题:

main.c:8: błąd: `FTW_DP, undeclared (first use in this function)

我必须如何编译(使用一些库或什么?)

最佳答案

您需要添加

#define _XOPEN_SOURCE 500 

到代码顶部。

这是一个很好的引用页面:

http://man7.org/linux/man-pages/man3/ftw.3.html

关于c - 使用ftw库进行linux c编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303449/

相关文章:

PHP 7.4 和 Ubuntu 18 - PHP 启动 : Unable to load dynamic library 'curl.so'

c - C 中函数读取文件的意外行为

c - 对结构中的多个项目进行 bsearch

通过指针更改 C 中的字符串文字?

c - 使用 qsort 对数组结构进行排序

c++ - 在链接时插入字符串

linux - C++ 十六进制转换器代码中的逻辑错误

c++ - 在 Linux 中使用 C++ 跨卷 move 文件

c - 如何跟踪 C 中的特定函数/文件?

linux - 在Windows 7和Windows 8中,我们可以将笔式驱动器/闪存驱动器用作RAM。我们如何在Debian Linux中做到这一点?