gpt4 book ai didi

c - MAP_ANONYMOUS 符合 C99 标准

转载 作者:太空狗 更新时间:2023-10-29 16:28:43 25 4
gpt4 key购买 nike

我有一个使用 mmap 系统调用的应用程序,我在编译它时遇到了几个小时的问题,想知道为什么我得到 MAP_ANON 和 MAP_ANONYMOUS 未声明,我使用了一小部分代码,我看到我可以很好地编译它,所以我只尝试了一个基本的编译并且成功了,我看到当你添加 -std=c99 时它失败了。 MAP_ANON 和 MAP_ANONYMOUS 在 C99 标准中无效是否有特定原因?我知道它们不是由 POSIX 定义的,而是由 BSD SOURCE 定义的,所以我只想知道为什么会这样。

最佳答案

您可能需要 -std=gnu99 而不是 -std=c99。 C99 模式明确禁用(大多数)GNU 扩展。

我写了一个简单的测试:

#include <sys/mman.h>

int a = MAP_ANONYMOUS;

在 C99 模式下,它找不到值:

$ gcc -std=c99 -c d.c
d.c:3:9: error: ‘MAP_ANONYMOUS’ undeclared here (not in a function)

而在 Gnu99 模式下,它会:

$ gcc -std=gnu99 -c d.c

关于c - MAP_ANONYMOUS 符合 C99 标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5446698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com