Gethostname() function
Bonsoir, je suis actuellement en train de développer une application C++ qui utilise des raw sockets. Dans cette dernière, j'ai besoin d'utiliser la fonction gethostname(), mais celle ci ne cesse de me retourner : -1
"voici une fraction de mon code"
J'ai donc regardé plus en détail la documentation MSDN, mais aucune des erreurs suivantes ne correspond à un code de retour -1 ( WSAEFAULT, WSANOTINITIALISED, WSAENETDOWN, WSAEINPROGRESS).
Auriez vous une idée d'où pourrez venir le problème ?
EDIT: Ajout de la coloration syntaxique.
--
"voici une fraction de mon code"
char * hostName = NULL; if (gethostname(hostName, sizeof(hostName)) == 0) std::cout << "Host Found : " << hostName << "\n";
J'ai donc regardé plus en détail la documentation MSDN, mais aucune des erreurs suivantes ne correspond à un code de retour -1 ( WSAEFAULT, WSANOTINITIALISED, WSAENETDOWN, WSAEINPROGRESS).
Auriez vous une idée d'où pourrez venir le problème ?
EDIT: Ajout de la coloration syntaxique.
--
1 réponse
Bonjour,
Si tu regardes dans
Voici un code qui fonctionne chez moi :
Résultat :
Bonne chance
Si tu regardes dans
man gethostname(dans google, ou dans un terminal linux) tu verras que la variable
errno(et la fonction
strerror) te permettra sans doute de comprendre d'où vient ton problème.
Voici un code qui fonctionne chez moi :
#include <errno.h> #include <stdio.h> #include <string.h> #include <unistd.h> int main() { const size_t LEN = 100; char name[LEN]; if (gethostname(name, LEN) == -1) { fprintf(stderr, "%s\n", strerror(errno)); return 1; } printf("name = %s\n", name); return 0; }
Résultat :
(mando@aldur) (~) $ gcc main.c
(mando@aldur) (~) $ ./a.out
name = aldur
Bonne chance