J'ai un index pour l'interface réseau dont j'ai reçu un paquet (c.-à-d. 2), et j'ai besoin de trouver le nom d'interface, qui devrait retourner "eth0"
. J'utilise if_indextoname()
.impossible de convertir 'char **' en 'char *'
Je ne suis pas beaucoup plus familier avec le C++ sur Ubuntu, mais mon code supprime un erreur:
cannot convert
char**
tochar*
for argument 2 tochar* if_indextoname(unsigned int, char*)
que quelqu'un peut me aider à résoudre ce problème?
#include <net/if.h>
#include <iostream>
int main()
{
unsigned int ifindex = 2;
char *ifname[10];
std::cout << if_indextoname(ifindex, ifname);
std::cout << ifname << std::endl;
}
vous passez un tableau de 'char *' quelque chose qui attend un 'char *'. Peut-être que vous vouliez dire 'char ifname [IF_NAMESIZE];' (ou une taille plus grande, ou utilisez le tampon d'un 'std :: string' de cette taille dans C++ 11). – chris
Cela n'a rien à voir avec Linux ou Ubuntu. C'est juste C++. Un tableau de 'char *' ne peut pas se désintégrer en un 'char *'. – juanchopanza
Merci chris; fixé! –