home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume9 / gwyn-dir-lib / closedir.c next >
C/C++ Source or Header  |  1987-04-30  |  568b  |  36 lines

  1. /*
  2.     closedir -- close a directory stream
  3.  
  4.     last edit:    25-Apr-1987    D A Gwyn
  5. */
  6.  
  7. #include    <sys/errno.h>
  8. #include    <sys/types.h>
  9. #include    <dirent.h>
  10.  
  11. typedef char    *pointer;        /* (void *) if you have it */
  12.  
  13. extern void    free();
  14. extern int    close();
  15.  
  16. extern int    errno;
  17.  
  18. #ifndef NULL
  19. #define    NULL    0
  20. #endif
  21.  
  22. int
  23. closedir( dirp )
  24.     register DIR    *dirp;        /* stream from opendir() */
  25.     {
  26.     if ( dirp == NULL || dirp->dd_buf == NULL )
  27.         {
  28.         errno = EFAULT;
  29.         return -1;        /* invalid pointer */
  30.         }
  31.  
  32.     free( (pointer)dirp->dd_buf );
  33.     free( (pointer)dirp );
  34.     return close( dirp->dd_fd );
  35.     }
  36.