Foros de daboweb

MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación => Webmasters - Diseño Web - Programación - Diseño gráfico => Mensaje iniciado por: djmon en 21 de Mayo de 2005, 12:20:12 pm

Título: evitar violacion de segmento al leer char [ ]
Publicado por: djmon 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)
Título: evitar violacion de segmento al leer char [ ]
Publicado por: BuHo en 21 de Mayo de 2005, 01:54:43 pm
Cual es el codigo que tienes?
Título: evitar violacion de segmento al leer char [ ]
Publicado por: djmon 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:
Título: evitar violacion de segmento al leer char [ ]
Publicado por: jirho 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...
Título: evitar violacion de segmento al leer char [ ]
Publicado por: djmon 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:
Título: evitar violacion de segmento al leer char [ ]
Publicado por: jirho 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: ...