Gethostname() function

Fermé
Emoragi Messages postés 125 Date d'inscription mercredi 2 juin 2010 Statut Membre Dernière intervention 19 juin 2016 - Modifié par Whismeril le 7/07/2015 à 07:10
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 17 juil. 2015 à 12:37
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"

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

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
17 juil. 2015 à 12:37
Bonjour,

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
0