出现GCC错误:“ sys / memfd.h:没有这样的文件或目录”

辣椒酱

我试图在我的C代码中使用memfd_create syscall。我尝试将sys / memfd.h包括在内,因为memfd_create的手册页说的是适当的,但是GCC给了我一个错误“ sys / memfd:没有这样的文件或目录”。

我尝试了Googling,但找不到任何人遇到相同的问题。我注意到memfd_create的手册页的某些版本说我应该包含sys.mman.h,但是当我尝试使用它时似乎没有帮助。它会说memfd_create是隐式声明的。

这是我的问题的最小再现。

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>

#include <sys/mman.h>

#include <sys/memfd.h>



int main(){

        int fd;
        fd = memfd_create("test", MFD_CLOEXEC);

        return 0;
}

我希望上面的代码能够编译并正确运行。

Nikos C.

Bionic(18.04)中的Ubuntu手册页尚未与此API保持同步(包括其在Bionic中的实现)。

焦点手册页正确显示了如何包括memfd_create()它说:

#define _GNU_SOURCE         /* See feature_test_macros(7) */
#include <sys/mman.h>

因此,您只需要包含<sys/mman.h>,并且需要-D_GNU_SOURCE在编译器标记中进行构建或者,按照手册页上的说明进行操作,#define _GNU_SOURCE包括添加标题。但是,我建议仅使用进行编译-D_GNU_SOURCE

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用MacOS Mojave的Code :: Blocks C ++编译:致命错误:sys / cdefs.h:没有这样的文件或目录

macos致命错误:sys / _types / _int8_t.h:没有这样的文件或目录#include <sys / _types / _int8_t.h>

sys / types.h:没有这样的文件或目录

没有这样的文件或目录-gcc

没有这样的文件或目录错误

GCC致命错误:stdio.h:没有这样的文件或目录

arm-linux-gnu-gcc致命错误:stdio.h:没有这样的文件或目录

gcc错误Python.h:没有这样的文件或目录

gcc:致命错误:limits.h:macos上没有这样的文件或目录

出现错误“没有这样的文件或目录”

在qemu中出现错误“没有这样的文件或目录”

glib.h使错误。致命错误:glib.h:没有这样的文件或目录

致命错误:mpi.h:没有这样的文件或目录#include <mpi.h>

jinclude.h:20:55:致命错误:jconfig.h:没有这样的文件或目录

os_defines.h:致命错误:features.h没有这样的文件或目录

致命错误:linux/compiler-gcc6.h:没有这样的文件或目录#include gcc_header(__GNUC__) ^

C++ 错误消息:致命错误:wchar.h:没有这样的文件或目录

错误生成:致命错误:pcre.h:没有这样的文件或目录

错误:创建目录:没有这样的文件或目录

编译C文件时出现“严重错误:stdio.h:没有这样的文件或目录”

syslog-ng产生错误-iv.h:没有这样的文件或目录

致命错误:ui_about.h:没有这样的文件或目录

致命错误:netlink / genl / genl.h:没有这样的文件或目录

srlua makefile错误lua.h没有这样的文件或目录

来自Fortran的C代码:致命错误:stdlib.h:没有这样的文件或目录

“严重错误:openssl / opensslv.h:没有这样的文件或目录”,编译mitmproxy

Makefile:致命错误:jni.h:没有这样的文件或目录

致命错误:cuda.h:没有这样的文件或目录

python buildpack-致命错误:sasl / sasl.h:没有这样的文件或目录