mman.h确实导入mmap函数但无法导入mremap

时间:2016-12-11 18:14:11

标签: c libraries mmap

所以我想使用mremap函数更容易处理内存映射文件,但会引发隐式声明错误

addr = mremap(addr, len, len_file, MREMAP_MAYMOVE);

如果我没有行

,我会包含所需的库
addr = mmap(NULL, len_file, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0);

会引发同样的错误。

我当前的标题包含根据需要指向的库

#include <sys/mman.h>
#define _GNU_SOURCE

1 个答案:

答案 0 :(得分:2)

此处订单不正确:

#include <sys/mman.h>
#define _GNU_SOURCE

您必须在之前定义_GNU_SOURCE ,包括标题:

#define _GNU_SOURCE
#include <sys/mman.h>