1: /* Copyright (c) 1982 Regents of the University of California */
2:
3: static char sccsid[] = "@(#)seekdir.c 4.6 9/12/82";
4:
5: #include <sys/param.h>
6: #include <dir.h>
7:
8: /*
9: * seek to an entry in a directory.
10: * Only values returned by ``telldir'' should be passed to seekdir.
11: */
12: void
13: seekdir(dirp, loc)
14: register DIR *dirp;
15: long loc;
16: {
17: long curloc, base, offset;
18: struct direct *dp;
19:
20: curloc = telldir(dirp);
21: if (loc == curloc)
22: return;
23: base = loc & ~(DIRBLKSIZ - 1);
24: offset = loc & (DIRBLKSIZ - 1);
25: lseek(dirp->dd_fd, base, 0);
26: dirp->dd_loc = 0;
27: while (dirp->dd_loc < offset) {
28: dp = readdir(dirp);
29: if (dp == NULL)
30: return;
31: }
32: }
Defined functions
Defined variables
sccsid
defined in line
3;
never used