1cd91020bSdist /* 2*3d13a774Sbostic * Copyright (c) 1983, 1993 3*3d13a774Sbostic * Regents of the University of California. All rights reserved. 4b93cb091Sbostic * 5be25273bSbostic * %sccs.include.redist.c% 6cd91020bSdist */ 7cd91020bSdist 8432efd2dSdonn #if defined(LIBC_SCCS) && !defined(lint) 9*3d13a774Sbostic static char sccsid[] = "@(#)closedir.c 8.1 (Berkeley) 06/10/93"; 10b93cb091Sbostic #endif /* LIBC_SCCS and not lint */ 11f510e74dSmckusick 1229f6e5f0Sbostic #include <sys/types.h> 13a0a99e1fSmckusick #include <dirent.h> 14ae227ee3Sdonn #include <stdlib.h> 15ae227ee3Sdonn #include <unistd.h> 16f510e74dSmckusick 17f510e74dSmckusick /* 18f510e74dSmckusick * close a directory. 19f510e74dSmckusick */ 20ae227ee3Sdonn int closedir(dirp)21f510e74dSmckusickclosedir(dirp) 22ca95b856Smckusic register DIR *dirp; 23f510e74dSmckusick { 2429f6e5f0Sbostic int fd; 25a4770fe4Smckusick 26bd142deeSmckusick seekdir(dirp, dirp->dd_rewind); /* free seekdir storage */ 2729f6e5f0Sbostic fd = dirp->dd_fd; 28ca95b856Smckusic dirp->dd_fd = -1; 29ca95b856Smckusic dirp->dd_loc = 0; 3029f6e5f0Sbostic (void)free((void *)dirp->dd_buf); 3129f6e5f0Sbostic (void)free((void *)dirp); 3229f6e5f0Sbostic return(close(fd)); 33f510e74dSmckusick } 34