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

  1. /*
  2.     rewinddir -- rewind a directory stream
  3.  
  4.     last edit:    25-Apr-1987    D A Gwyn
  5.  
  6.     This is not simply a call to seekdir(), because seekdir()
  7.     will use the current buffer whenever possible and we need
  8.     rewinddir() to forget about buffered data.
  9. */
  10.  
  11. #include    <sys/errno.h>
  12. #include    <sys/types.h>
  13. #include    <dirent.h>
  14.  
  15. extern off_t    lseek();
  16.  
  17. extern int    errno;
  18.  
  19. #ifndef NULL
  20. #define    NULL    0
  21. #endif
  22.  
  23. #ifndef SEEK_SET
  24. #define    SEEK_SET    0
  25. #endif
  26.  
  27. void
  28. rewinddir( dirp )
  29.     register DIR        *dirp;    /* stream from opendir() */
  30.     {
  31.     if ( dirp == NULL || dirp->dd_buf == NULL )
  32.         {
  33.         errno = EFAULT;
  34.         return;            /* invalid pointer */
  35.         }
  36.  
  37.     dirp->dd_loc = dirp->dd_size = 0;    /* invalidate buffer */
  38.     (void)lseek( dirp->dd_fd, (off_t)0, SEEK_SET );    /* may set errno */
  39.     }
  40.