CUESTIÓN

  • El compilador no encuentra el fichero de cabecera ndir.h:
    <Tejo>/home/so/PRACTS$ c89 prueba.c -o prueba
    cpp: "prueba.c", line 1: error 4036: Can't open include file 'ndir.h'.


    SOLUCIÓN

    En efecto, el fichero ndir.h no está en tejo. Como solución, debéis hacer vosotros el trabajo que realiza el fichero de cabecera. Fundamentalmente, consiste en definir el prototipo de la función getdirentries y en definir los tipos especiales que use, en particular struct direct.

    Respecto a lo primero, basta con que copiéis el prototipo de la función que viene en el resumen después de la serie de #includes.

    Respecto a lo segundo, también tenéis que definir la estructura direct, pues venía en el fichero desaparecido. Para ello, añadid las siguientes líneas después de los #includes, pero antes que el prototipo de getdirentries:
    struct direct
       {unsigned long  d_fileno; /* inodo aprox. */
        unsigned short d_reclen; /* longitud de la estructura */
        unsigned short d_namlen; /* longitud del nombre */
        char           d_name[MAXNAMLEN + 1];  /* nombre del fichero */
        }; 
    Tenéis que añadir, no obstante, el fichero de cabecera <dirent.h>, para que la macro MAXNAMLEN esté correctamente definida.


    © 2000 Guillermo González Talaván.