Необъявленная ошибка «sockaddr_in6_t» даже после включения заголовочных файлов - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть следующий простой фрагмент кода, который является частью модуля обработки ipv6 в большом проекте.

#include <ctype.h>
#include <sys/select.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <net/if.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <sys/stat.h>

int main(){
  sockaddr_in6_t* pSadrIn6 = (sockaddr_in6_t*) malloc(sizeof sockaddr_in6_t);
  return 0;
}

Это дает мне следующее сообщение об ошибке:

error: ‘sockaddr_in6_t’ undeclared (first use in this function)

IsЕсть ли какая-либо специальная библиотека или ссылка, которая мне нужна для доступа к библиотеке?

1 Ответ

3 голосов
/ 19 декабря 2011

Похоже, вы скопировали этот код из Linux IPv6 HOWTO , но не скопировали дополнительные typedefs:

/*
** Type definitions (for convenience).
*/
typedef enum { false = 0, true } boolean;
typedef struct sockaddr_in       sockaddr_in_t;
typedef struct sockaddr_in6      sockaddr_in6_t;

Лично я бы просто использовал типы как они есть (вместо лишних typedefs, чтобы не набирать struct), но все равно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...