|
|
1.1 ! root 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 "usr.dirent.h" ! 10: ! 11: #ifndef GETDENTS ! 12: typedef char *pointer; /* (void *) if you have it */ ! 13: ! 14: extern void free(); ! 15: extern int close(); ! 16: ! 17: extern int errno; ! 18: ! 19: #ifndef NULL ! 20: #define NULL 0 ! 21: #endif ! 22: ! 23: int ! 24: closedir( dirp ) ! 25: register DIR *dirp; /* stream from opendir() */ ! 26: { ! 27: register int fd; ! 28: ! 29: if ( dirp == NULL || dirp->dd_buf == NULL ) ! 30: { ! 31: errno = EFAULT; ! 32: return -1; /* invalid pointer */ ! 33: } ! 34: ! 35: fd = dirp-> dd_fd; ! 36: free( (pointer)dirp->dd_buf ); ! 37: free( (pointer)dirp ); ! 38: return close( fd ); ! 39: } ! 40: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.