[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

¿Es esto normal con la llamada 'gethostbyname()'?



Estoy haciendo un programa chorra para redireccionar correo y me he encontrado
con una curiosidad del gethostbyname(). El caso es que siempre devuelve un
puntero a la misma dirección, por lo que en dos llamada sucesivas a la función
para resolver dos nombre, pues el segundo pisa al primero. Por lo visto no hace
un malloc() para reservar memoria o yo qué sé:

Este programa de ejemplo demuestra tan curioso hecho:

#include <stdio.h> 
#include <netdb.h>

int main(int argc, char *argv[]) {
  struct hostent *a, *b, *c;

  printf("a: %p, b: %p, c:%p\n", a, b, c);
  a = gethostbyname("antares");
  b = gethostbyname("javi");
  c = gethostbyname("apolo");
  printf("a: %p, b: %p, c:%p\n", a, b, c);

  return 0;
}

¿Hay algo mal en mi máquina? Supongo que la solución es hacer un
malloc() y un memcpy() de lo que devuelve cada vez para que no me pise, pero no
lo veo lógico.


Gracias.

 -- 
-----------------------------------------------------------------------------

 * Hay miles de Pentiums 75 bajo su Pentium 100. Siga raspando!!.

-------------
                      Registered Linux user number 134.596

 E-mail: monkiki@teleline.es                     Powered by Debian 2.1 slink
-----------------------------------------------------------------------------


Reply to: