c - ‘close’ 的静态声明遵循非静态声明 static inline int close(int sock)

标签 c zephyr-rtos

我已经用 c 语言开发了大约 6 个月,我对这里发生的事情感到非常困惑。尝试包含 socket.h 头文件时出现此错误。

static inline int close(int sock)
{
    return zsock_close(sock);
}

这个方法好像有问题?我从构建中得到了这个。

In file included from /home/jordan/zephyr/zephyr/include/posix/pthread.h:13:0,
                 from /home/jordan/thrift/src/c/zephyr/mbedtlstest/../../../../include/thrift/os.h:10,
                 from /home/jordan/thrift/src/c/zephyr/mbedtlstest/../../../../include/thrift/types.h:4,
                 from /home/jordan/thrift/src/c/zephyr/mbedtlstest/../../../../include/thrift/ssl/../transport.h:4,
                 from /home/jordan/thrift/src/c/zephyr/mbedtlstest/../../../../include/thrift/ssl/transport.h:4,
                 from /home/jordan/thrift/src/c/ssl/transport.c:1:
/home/jordan/zephyr/zephyr/include/posix/unistd.h:21:12: note: previous declaration of ‘close’ was here

最佳答案

正如 user3386109 所说,close 是一个 C POSIX 库函数,用于关闭文件描述符。您可以在这里找到更多相关信息:-

https://linux.die.net/man/2/close

解决此问题的正确方法是将函数重命名为以前未使用过的唯一名称。

关于c - ‘close’ 的静态声明遵循非静态声明 static inline int close(int sock),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55173100/

相关文章:

配置Linux内核

c++ - 使用 googletest 将 C++ 代码单元测试到 Zephyr

用于树莓派的蓝牙网状网络

以 "path agnostic"方式从vim编译C文件

zephyr-rtos - 为什么来自 Linux Foundation 的 Zephyr RTOS 使用 Apache 许可证?

c - 如何交换无符号整数的两个八位二进制表示的位置?

c - 使用指针获取 uint16_t 的 8 位单独地址

c - 代码中的 dbx WUA 错误跟踪

c - 抑制警告 : the use of `mktemp' is dangerous