Gethostname() function

Emoragi Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
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

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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