• Jueves 14 de Noviembre de 2024, 04:17

Autor Tema:  Tratamiento De Un Buffer (segunda Parte)!  (Leído 1253 veces)

jesusfd

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Tratamiento De Un Buffer (segunda Parte)!
« en: Sábado 18 de Diciembre de 2004, 11:55 »
0
Hooola de nuevo, pero es ke tengo un problema que soy incapaz de solucionar:
   Resulta que recibo de un cliente, por un socket, un mensaje y guardo los tres argumentos que me puede mandar como mucho en las respectivas vbles así:
   if(nbytes = recv(fd,buforden,ORDSIZE,0)>0){
      orden=strtok(buforden," ");
      arg2=strtok(NULL," ");
      arg3=strtok(NULL," ");
   }

   Si después de esto pongo un printf para cada vble, sí me las imprime bien en pantalla, pero si lo que quiero es almacenarla y luego compararla con una palabra determinada y resulta que por ej el arg2 es igual a mi palabra, no me muestra nada!!!(creo que se puede deber a caracteres "raros q no se ven" que se meten y por eso ya no es la misma palabra).

   Alguien me puede decir como lo puedo solucionar??o alguna función que lo haga bien? He probado a hacerlo de muchas formas (vease otros posts) y no consigo guardar las palabras del dichoso buffer en sendas vbles correctamente.

   GRACIAS! (de nuevo).

CiRRuS

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
    • http://zirrus.es
Re: Tratamiento De Un Buffer (segunda Parte)!
« Respuesta #1 en: Sábado 18 de Diciembre de 2004, 22:32 »
0
La funcion strtok devuelve un puntero al siguiente token y modifica la cadena que recibe como parametro (cuidado con eso), creo que no reserva memoria nueva para el puntero que devuelve.

¿Por qué no intentas probar con la función strdup para duplicar las cadenas que te devuelve strtok? Quiza eso te solucione el problema.

Espero haberte ayudado, si no es asi, no dudes en contarnos que te pasa.

Nos vemos :hola:
Core Dumped
zirrus.es

jesusfd

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Tratamiento De Un Buffer (segunda Parte)!
« Respuesta #2 en: Domingo 19 de Diciembre de 2004, 11:50 »
0
voy a probar con lo que me dijiste...pero eske al final me voy a liar con tanta funcion....jeje

gracias!