静态声明“ close”紧跟非静态声明static inline int close(int sock)

时间:2019-03-14 22:43:16

标签: 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

1 个答案:

答案 0 :(得分:2)

如user3386109所述,close是C POSIX库函数,用于关闭文件描述符。您可以在此处找到有关它的更多信息:-

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

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