xref: /csrg-svn/lib/libc/gen/seekdir.c (revision 5928)
15752Smckusick /* Copyright (c) 1982 Regents of the University of California */
25752Smckusick 
3*5928Smckusic static char sccsid[] = "@(#)seekdir.c 1.2 02/21/82";
45752Smckusick 
55752Smckusick #include <sys/types.h>
65752Smckusick #include <ndir.h>
75752Smckusick 
85752Smckusick /*
9*5928Smckusic  * seek to an entry in a directory.
10*5928Smckusic  * Only values returned by ``telldir'' should be passed to seekdir.
115752Smckusick  */
125752Smckusick void
13*5928Smckusic seekdir(dirp, loc)
14*5928Smckusic 	register DIR *dirp;
15*5928Smckusic 	long loc;
165752Smckusick {
17*5928Smckusic 	lseek(dirp->dd_fd, loc & ~(DIRBLKSIZ - 1), 0);
18*5928Smckusic 	dirp->dd_loc = loc % DIRBLKSIZ;
19*5928Smckusic 	if (dirp->dd_loc != 0)
20*5928Smckusic 		dirp->dd_size = read(dirp->dd_fd, dirp->dd_buf, DIRBLKSIZ);
215752Smckusick }
22