1: /*
   2:  * Copyright (c) 1983 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  */
   6: 
   7: #if defined(LIBC_SCCS) && !defined(lint)
   8: static char sccsid[] = "@(#)seekdir.c	5.2 (Berkeley) 3/9/86";
   9: #endif LIBC_SCCS and not lint
  10: 
  11: #include <sys/param.h>
  12: #include <sys/dir.h>
  13: 
  14: /*
  15:  * seek to an entry in a directory.
  16:  * Only values returned by "telldir" should be passed to seekdir.
  17:  */
  18: void
  19: seekdir(dirp, loc)
  20:     register DIR *dirp;
  21:     long loc;
  22: {
  23:     long curloc, base, offset;
  24:     struct direct *dp;
  25:     extern long lseek();
  26: 
  27:     curloc = telldir(dirp);
  28:     if (loc == curloc)
  29:         return;
  30:     base = loc & ~(DIRBLKSIZ - 1);
  31:     offset = loc & (DIRBLKSIZ - 1);
  32:     (void) lseek(dirp->dd_fd, base, 0);
  33:     dirp->dd_loc = 0;
  34:     while (dirp->dd_loc < offset) {
  35:         dp = readdir(dirp);
  36:         if (dp == NULL)
  37:             return;
  38:     }
  39: }

Defined functions

seekdir defined in line 18; used 6 times

Defined variables

sccsid defined in line 8; never used
Last modified: 1986-03-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2306
Valid CSS Valid XHTML 1.0 Strict