[C con Clase] Error glibc y escaneo de directorios.

Sergio sbgaster en gmail.com
Dom Ene 24 16:10:56 CET 2010


Gracias a todos por las respuestas.


deberias probar boost, que eso te quieres te sale en 3 patadas, y boost va a
> ser parte del nuevo estandar de c++0x
>


 No conocia Boots le hechare un vistazo ya que va a ser parte del proximo
estandar , por cierto cuando saldra ??
se sabe una fecha mas o menos??.

Muy probablemente....no se trate de error de codigo, sino que sea tema
> de permisos.
>

No tampoco son los permisos ya lanze el programa como root y tampoco
funciona.

Es la primera vez que veo la palabra "Usaje" en un programa.
>

Jeje yo tampoco y no se por que la puse [?]

Esto es incorrecto. sizeof argv será el tamaño de un puntero (4 - 8 bytes)
>
> > strcpy ( path ,argv[1] );
> Pero le estás copiando una cadena.


Entonces como podria pasar a path el argumento dos del array argv[], de
todas maneras cuando ejecuto el depurador me sale el segundo valor de argv
en path, si lanzo lib_1 /usr en path debugeando me aparece ese valor.
No se cual es la forma correcta de asignar a path ese valor.




El 23 de enero de 2010 23:27, Programante <programante en gmail.com> escribió:

> Sergio escribió:
> > Hola a todos, envió esta consulta a esta lista aun sabiendo que no es
> > una pregunta referente a C++ ya que me tiene bastante loco y no
> > consigo encontrar el error.
> >
> > Estoy haciendo unas pruebas con glibc-2.0 y bueno me puse a hacer un
> > pequeño programa para escanear un directorio, sin pretensiones, solo
> > unas pruebas.
> > El caso es que una vez acabado el programa puedo escanear mi
> > directorio /home pero si introduzco cualquier otro directorio por
> > ejemplo /usr no me imprime nada , como digo es un programa de prueba y
> > solo escanea el primer directorio , no entra en los demás.
> >
> > Aquí envió el código a ver si alguien me puede decir cual es el error.
> >
> >
> >  #include <glib.h>
> > #include <stdio.h>
> > #include <string.h>
> > #include <stdlib.h>
> >
> > int main ( int argc ,char *argv[] )
> > {
> >
> >
> > //variables
> > GDir   *dir        = NULL;
> > GDir   *new_dir        = NULL;
> > gchar  *name_dir    = NULL;
> > gchar  *name_sub_dir    = NULL;
> > GError *error        = NULL;
> > gchar  *path        = NULL;
> >
> > //comprobar argumentos
> > if (argc < 2 )
> >     {
> >     printf ( "Usaje:\nNombre del programa lib_1 " );
> Es la primera vez que veo la palabra "Usaje" en un programa.
>
> >     printf ( "seguido del argumento ( directorio a escanear ).\n" );
> >     return;
> >     }
> >
> > path = ( gchar * ) malloc ( sizeof ( argv ) );
> Esto es incorrecto. sizeof argv será el tamaño de un puntero (4 - 8 bytes)
>
> > strcpy ( path ,argv[1] );
> Pero le estás copiando una cadena.
>
>
> Como estás corrompiendo memoria podría tener que ver con que g_file_test
> no retorne.
> Existe un paquete de símbolos de la glibc, por si quieres meterte dentro
> depurando (será algo así como glibc-gdb).
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100124/8dc4101b/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 330.gif
Type: image/gif
Size: 96 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100124/8dc4101b/attachment.gif>


Más información sobre la lista de distribución Cconclase