[C con Clase] Problema al leer lineas de fichero texto

Ariel Romero aromero en cenatav.co.cu
Vie Oct 19 17:50:33 CEST 2007


Hola a todos:
Soy nuevo en C. Estoy haciendo una funcion que dada la direccion de un 
fichero lo abra y devuelva en un puntero a char el  texto de este 
fichero. Lo hice pero no lo hace bien. Me pueden ayudar para saber que 
hice mal ?
Aqui esta el codigo:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <errno.h>
#include <string.h>
#include <ctype.h>

    char* getStringCadFromFile(char* fileName){
        FILE *fp1;
        char line[BUFSIZ];
        char *c, *stringCad;
       
        fp1 = fopen(fileName, "r");
        if (fp1 == NULL){
            perror("Error al abrir el archivo \n");
            exit (EXIT_FAILURE);
            }
       
        stringCad = malloc(sizeof(char*));
        do{           
            c = fgets(line, BUFSIZ, fp1); /* Obtiene una linea del 
archivo */
            if (c != NULL){
                stringCad = realloc(stringCad, 
((sizeof(char*))*(strlen(line)+1)));
                strcat(stringCad, line);
               
                }
            } while (c != NULL); /* Se repite hasta encontrar NULL */
        fclose(fp1);   
        return stringCad;
        }


Despues en el main ...

int main(int argc, char **argv) {
char* stringCad = getStringCadFromFile("test.txt");
return EXIT_SUCCESS;
}


Pero no me saca el texto del fichero, lo que hace es mas o menos poner 
algunas palabras desordenadas del texto y ya.
No entiendo por qué, supongo que es algo de direcciones de memoria y 
punteros que no lo estoy haciendo bien.
Espero me pueda ayudar.
Saludos
Ariel




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