Autor Tema: evitar violacion de segmento al leer char [ ]  (Leído 4023 veces)

Desconectado djmon

  • Newbie
  • *
  • Mensajes: 5
evitar violacion de segmento al leer char [ ]
« en: 21 de Mayo de 2005, 12:20:12 pm »
Hola, tengo un problema al leer caracter a caracter un array de char(char buf [BUFSIZ])

El formato de este array de char es:(lo stoy recibiendo por sockets)

@1@[email protected]\n
@1@[email protected]\n
..
...

El problema que me da, esque al leer(normalmente) la ultima linea, mi algoritmo se fastidia y me sale violacion de segmento.
Hay algun algoritmo sencillo que pueda coger el segundo parametro y el tercero de cada linea de mi array de char?(es decir 4532 y file.txt por ejemplo)

Creo que el problema da porque no detecta bien los '\0' de fin de array o algo de eso.

a ver si alguien puede ayudarme,muchas gracias :roll:

por cierto programo con gcc 3.3.1(suse 9.0)

Desconectado BuHo

  • Pro Member
  • ****
  • Mensajes: 733
    • La Estancia Azul
evitar violacion de segmento al leer char [ ]
« Respuesta #1 en: 21 de Mayo de 2005, 01:54:43 pm »
Cual es el codigo que tienes?
Wake up BuHo...
Daboweb has you[/color]
Mi blog: La Estancia Azul

Desconectado djmon

  • Newbie
  • *
  • Mensajes: 5
evitar violacion de segmento al leer char [ ]
« Respuesta #2 en: 21 de Mayo de 2005, 03:08:43 pm »
a ver, os pongo el algoritmo que coge cosas de char buf[]

Código: [Seleccionar]
x++;//pasamos de la opcion y la primera @
x++;
x++; //segunda arroba
while(x<strlen(buf))//bucle que coje todo buf
{

//limpiamos las variables
memset(ident,'\0',10);
memset(fich,'\0',20);
int j=0;
while ((buf[x]!='@')&&(buf[x]!='\0')&&(x<strlen(buf)))//vamos hasta la @
{
ident[j]=buf[x];
x++;
j++;

}
printf("%s",ident);
x++;//pasamos la @
//ahora hasta el final de linea leemos el nombre del fichero
j=0;
while ((buf[x]!='@')&&(buf[x]!='\0')&&(x<strlen(buf)))
{
fich[j]=buf[x];
x++;
j++;
}
printf("%s",fich);

//almacenamos en la lista de ficheros del servidor ident y fich
x++;//pasamos de la opcion y la primera @
x++;
x++; //segunda arroba
}
free(fich);
free(ident);


muchas gracias por la ayuda :roll:

Desconectado jirho

  • Member
  • ***
  • Mensajes: 303
evitar violacion de segmento al leer char [ ]
« Respuesta #3 en: 21 de Mayo de 2005, 05:21:52 pm »
...no se, no lo veo bien, pero podria ser la suma de la cadena, talvez llega null y por eso falla...
[root@local_host jirho]#Conecting to underground zone...:superman:

http://www.hackeando.com/gifs/logomini.gif

Desconectado djmon

  • Newbie
  • *
  • Mensajes: 5
evitar violacion de segmento al leer char [ ]
« Respuesta #4 en: 21 de Mayo de 2005, 05:31:37 pm »
pues vaya, la solucion era,que a veces tengo puesto un tamaño BUFSIZ para buf y otras veces lo limpio con 32768 y no le gusta...
gracias por todo :wink:

Desconectado jirho

  • Member
  • ***
  • Mensajes: 303
evitar violacion de segmento al leer char [ ]
« Respuesta #5 en: 23 de Mayo de 2005, 10:03:01 pm »
...jeje...asi es todo, cuando vemos el error nos provoca  :x ...pero asi es como se aprende... :wink: ...
[root@local_host jirho]#Conecting to underground zone...:superman:

http://www.hackeando.com/gifs/logomini.gif

 

Aviso Legal | Política de Privacidad | Política de Cookies

el contenido de la web se rige bajo licencia
Creative Commons License