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 dansman gethostname
(dans google, ou dans un terminal linux) tu verras que la variableerrno
(et la fonctionstrerror
) 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