|
|
1.1 ! root 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: ! 12: #include <sys/types.h> ! 13: #include "dirent.h" ! 14: ! 15: #ifdef COHERENT ! 16: #include <errno.h> ! 17: typedef daddr_t off_t; ! 18: ! 19: #else ! 20: #include <sys/errno.h> ! 21: #endif ! 22: ! 23: extern int errno; ! 24: ! 25: long lseek(); ! 26: ! 27: #ifndef NULL ! 28: #define NULL 0 ! 29: #endif ! 30: ! 31: #ifndef SEEK_SET ! 32: #define SEEK_SET 0 ! 33: #endif ! 34: ! 35: void ! 36: rewinddir( dirp ) ! 37: register DIR *dirp; /* stream from opendir() */ ! 38: { ! 39: if ( dirp == NULL || dirp->dd_buf == NULL ) ! 40: { ! 41: errno = EFAULT; ! 42: return; /* invalid pointer */ ! 43: } ! 44: ! 45: dirp->dd_loc = dirp->dd_size = 0; /* invalidate buffer */ ! 46: (void)lseek( dirp->dd_fd, (off_t)0, SEEK_SET ); /* may set errno */ ! 47: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.