Man Linux: Main Page and Category List

NAME

       seekdir - set the position of a directory stream

SYNOPSIS

       #include <dirent.h>

       void seekdir(DIR *dirp, long loc);

DESCRIPTION

       The  seekdir()  function  shall  set the position of the next readdir()
       operation on the directory stream specified by  dirp  to  the  position
       specified  by  loc.  The value of loc should have been returned from an
       earlier call  to  telldir().  The  new  position  reverts  to  the  one
       associated with the directory stream when telldir() was performed.

       If the value of loc was not obtained from an earlier call to telldir(),
       or if a call to rewinddir() occurred between the call to telldir()  and
       the call to seekdir(), the results of subsequent calls to readdir() are
       unspecified.

RETURN VALUE

       The seekdir() function shall not return a value.

ERRORS

       No errors are defined.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       The original standard developers perceived that there were restrictions
       on  the  use  of  the  seekdir()  and  telldir()  functions  related to
       implementation details, and for that reason these functions need not be
       supported  on  all  POSIX-conforming  systems.  They  are  required  on
       implementations supporting the XSI extension.

       One of the perceived problems of implementation is that returning to  a
       given  point in a directory is quite difficult to describe formally, in
       spite of its intuitive appeal, when systems that use  B-trees,  hashing
       functions,  or  other similar mechanisms to order their directories are
       considered. The definition of seekdir() and telldir() does not  specify
       whether,  when  using these interfaces, a given directory entry will be
       seen at all, or more than once.

       On  systems  not  supporting  these  functions,  their  capability  can
       sometimes  be  accomplished by saving a filename found by readdir() and
       later using rewinddir()  and  a  loop  on  readdir()  to  relocate  the
       position from which the filename was saved.

FUTURE DIRECTIONS

       None.

SEE ALSO

       opendir()  ,  readdir()  ,  telldir()  , the Base Definitions volume of
       IEEE Std 1003.1-2001, <dirent.h>, <stdio.h>, <sys/types.h>

COPYRIGHT

       Portions of this text are reprinted and reproduced in  electronic  form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       -- Portable Operating System Interface (POSIX),  The  Open  Group  Base
       Specifications  Issue  6,  Copyright  (C) 2001-2003 by the Institute of
       Electrical and Electronics Engineers, Inc and The Open  Group.  In  the
       event of any discrepancy between this version and the original IEEE and
       The Open Group Standard, the original IEEE and The Open Group  Standard
       is  the  referee document. The original Standard can be obtained online
       at http://www.opengroup.org/unix/online.html .