#c #zephyr-rtos
#c #zephyr-rtos
Вопрос:
Я разрабатываю на c около 6 месяцев, и я очень смущен тем, что здесь вообще происходит. Я получаю эту ошибку при попытке включить сокет.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. Вы не можете назвать свою функцию
close
. Это имя уже занято.2. Попробуйте
close(int sock)
—>JD_close(int sock)
Ответ №1:
Как заявил пользователь3386109, close — это функция библиотеки C POSIX, которая используется для закрытия файловых дескрипторов. Вы можете найти более подробную информацию об этом здесь:-
https://linux.die.net/man/2/close
Правильный способ исправить это — переименовать вашу функцию во что-то уникальное, что раньше не использовалось.