Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda c en en linux

Estas en el tema de Ayuda c en en linux en el foro de C/C++ en Foros del Web. Me ocurre una cosa un tanto extraña. Usando la funcion readdir() . Resulta que al ejecutar el programa, la primera entrada que toma de direcctorio ...
  #1 (permalink)  
Antiguo 26/01/2009, 11:44
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 3 meses
Puntos: 0
Ayuda c en en linux

Me ocurre una cosa un tanto extraña.

Usando la funcion readdir().

Resulta que al ejecutar el programa, la primera entrada que toma de direcctorio con readdir, es basura, y las demás si que las pilla bien.

El caso es que lo he probado en otro pc que tiene ubuntu en lugar de mandriva, y ahí no da ese error?¿?¿
No tiene sentido, no?

dejo aqui parte del codigo, amos, el uso más simple que le puedo poner.

Código:
       DIR * direc;		
	char ruta [ANCHOBUFFER];
	struct dirent * entrada;
	struct stat *info;
	
	[...]	

	if ((direc=opendir(ruta))==NULL){
		fprintf(stderr,"Fallo en la apertura del directorio %s. Error:%s\n",ruta, strerror(errno));
		exit(EXIT_FAILURE);
	}
	
		
	while ((entrada=readdir(direc))!=NULL){
		printf("Entrada actual:%s\n",entrada->d_name);     //AQUI ES DONDE FALLA
	}
	[...]
  #2 (permalink)  
Antiguo 26/01/2009, 14:47
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Ayuda c en en linux

Bueno, para ti que es basura? Si salen puntos, esos son directorios. La raro en todo caso es que e un OS salga y en otro no.
posiblemente un error, en la libreria de linux, algun bug. Intenta usar las versiones mas recientes de tu sistema operativo.
Saludos
  #3 (permalink)  
Antiguo 26/01/2009, 16:08
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda c en en linux

Con basura me refiero a que no tiene datos asignados, solo los que tiene cuando se declara.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:32.