- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试使用 nftw处理目录下的一些文件
#include <ftw.h>
#include <stdio.h>
int wrapper(const char * fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf) {
printf("File %d\n", ftwbuf->base);
return(0);
}
int main(int argc, char ** argv) {
const char *name;
int flags = 0;
name = argv[1];
nftw(name, wrapper, 20, flags);
return 0;
}
当我编译 (gcc kconfig_parser.c -o parser) 时,我收到这个警告和这个错误..
kconfig_parser.c:5: warning: ‘struct FTW’ declared inside parameter list
kconfig_parser.c:5: warning: its scope is only this definition or declaration, which is probably not what you want
kconfig_parser.c: In function ‘wrapper’:
kconfig_parser.c:6: error: dereferencing pointer to incomplete type
我已经检查了结构体的定义和回调的原型(prototype),以及一些示例,应该没问题...我做错了什么? (我几乎删除了所有代码以清除它)...
谢谢
最佳答案
出于某种原因,Linux 仍将 SUSv1 用于此 API,其中 nftw() 仍被视为扩展。
来自 Linux manual page ,包含必须是:
#define _XOPEN_SOURCE 500
#include <ftw.h>
关于c - 使用 nftw 发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/782338/
我有这个代码: #include #include #include int nftw_stat(const char *path, const struct stat *stat, int f
nftw() 是否有线程安全的实现?在 C/C++ 中?在文档中它说 "The nftw() function need not be thread-safe." 我将使用 nftw 作为递归删除函数
nftw 需要一个参数来表示要使用的文件句柄的数量。我见过几个将其指定为 20 的示例(这是 POSIX 保证的最小值?但也可以使用 getrlimit 或 sysconf 来获取实际的可用数量)。是
我正在尝试使用 C 的 nftw() 函数递归迭代一个文件夹,以打印完整的目录结构,同时我找不到检查级别是否已更改的方法,即它已移入目录或仅在目录中迭代。那么,有什么方法可以使用 nftw() 检查级
像这样使用 nftw 遍历目录时, nftw((argc < 2) ? "." : argv[1], rm, 20, FTW_DEPTH|FTW_PHYS) nftw 在遇到目录时将值 5 传递给 r
在 C 中,有没有办法指定 nftw 将搜索的基本目录的最大深度?例如,假设我要搜索的目录 dir 有一个 sub-subdirectory,但我只希望 nftw 通过 subdir 搜索而不是 su
我想用nftw在C中遍历一个目录结构。 但是,考虑到我想做的事情,我看不到使用全局变量的方法。 使用 (n)ftw 的教科书示例都涉及执行诸如打印文件名之类的操作。相反,我想获取路径名和文件校验和并将
我正在使用 POSIX 调用 nftw() 来遍历目录结构。目录结构是扁平的——只有 4 个文件,没有子目录。 然而,当我在这个平面目录上多次调用 nftw() 时,一段时间后我收到一条错误消息: "
我正在尝试使用 nftw处理目录下的一些文件 #include #include int wrapper(const char * fpath, const struct stat *sb, i
我写了一小段代码,使用 nftw 系统调用来进行树行走。 int flags =0; flags = flags | FTW_MOUNT; int nopenfd = 10; if( nftw( ar
我正在尝试使用带有以下代码的 nftw 获取目录树中的所有 .c 文件: static int gf(const char *path, const struct stat *st, int t, s
我从 opengroup.org 读了两个手册页( ftw 、 nftw ),所以我认为 ftw() 和 nftw() 不能保证线程-安全。 但我找到了另一个 page关于这些函数,请参阅 man7.
这是我的代码。我假设这与指针使用不当有关,或者我没有正确映射和取消映射我的内存。 谁能给我一些关于这个问题的见解? #define _XOPEN_SOURCE 500 #include #inclu
我是一名优秀的程序员,十分优秀!