aioritos
2005-07-21 11:50:35 UTC
Hola, tengo un problemilla con el siguiente codigo:
int download_file(int control_id)
{
int data_id,errorlevel;
char listing[BUFFER];
char dirname[255];
FILE *local_file;
struct dirent *dentry;
if(getcwd(dirname, 255)==0)
return FALSE;
/*Tengo que quitar Cliente*/
errorlevel=strlen(dirname);
errorlevel=errorlevel-7;/*strlen("Cliente");*/
dirname[errorlevel]='\0';
strcat(dirname,"Servidor/");
strcat(dirname,Num_Empresa);/*Variable global tipo char* */
/*loerrorlevel=strlen(dirname);
dirname[errorlevel]='\0';*/
/*ya tengo direccion para pedir archivos*/
DIR *d=opendir(dirname); /* NULL en caso de error */
if(d==0)
perror("fa");
puts("fin3");
dentry=readdir(d);
puts("fin4");
while(dentry!=0){
if(strcmp(dentry->d_name, ".")==0 || strcmp(dentry->d_name,
"..")==0){
dentry=readdir(d);/*Si es . ó .., lee el siguiente anda*/
}
A simple vista no parece que este mal; de hecho puesto en un nuevo
fichero fuente funciona!!!
Pero dentro de este codigo no. Alguien tiene mas vista que yo?? Bueno
decir que al bucle while no llega, ni tampoco a imprimir fin4, con lo
que deduzco que el "Sementation fault" se origina en el readdir
Gracias.
int download_file(int control_id)
{
int data_id,errorlevel;
char listing[BUFFER];
char dirname[255];
FILE *local_file;
struct dirent *dentry;
if(getcwd(dirname, 255)==0)
return FALSE;
/*Tengo que quitar Cliente*/
errorlevel=strlen(dirname);
errorlevel=errorlevel-7;/*strlen("Cliente");*/
dirname[errorlevel]='\0';
strcat(dirname,"Servidor/");
strcat(dirname,Num_Empresa);/*Variable global tipo char* */
/*loerrorlevel=strlen(dirname);
dirname[errorlevel]='\0';*/
/*ya tengo direccion para pedir archivos*/
DIR *d=opendir(dirname); /* NULL en caso de error */
if(d==0)
perror("fa");
puts("fin3");
dentry=readdir(d);
puts("fin4");
while(dentry!=0){
if(strcmp(dentry->d_name, ".")==0 || strcmp(dentry->d_name,
"..")==0){
dentry=readdir(d);/*Si es . ó .., lee el siguiente anda*/
}
A simple vista no parece que este mal; de hecho puesto en un nuevo
fichero fuente funciona!!!
Pero dentro de este codigo no. Alguien tiene mas vista que yo?? Bueno
decir que al bucle while no llega, ni tampoco a imprimir fin4, con lo
que deduzco que el "Sementation fault" se origina en el readdir
Gracias.