seekdir.3p (3568B)
- '\" et
- .TH SEEKDIR "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
- .\"
- .SH PROLOG
- This manual page is part of the POSIX Programmer's Manual.
- The Linux implementation of this interface may differ (consult
- the corresponding Linux manual page for details of Linux behavior),
- or the interface may not be implemented on Linux.
- .\"
- .SH NAME
- seekdir
- \(em set the position of a directory stream
- .SH SYNOPSIS
- .LP
- .nf
- #include <dirent.h>
- .P
- void seekdir(DIR *\fIdirp\fP, long \fIloc\fP);
- .fi
- .SH DESCRIPTION
- The
- \fIseekdir\fR()
- function shall set the position of the next
- \fIreaddir\fR()
- operation on the directory stream specified by
- .IR dirp
- to the position specified by
- .IR loc .
- The value of
- .IR loc
- should have been returned from an earlier call to
- \fItelldir\fR()
- using the same directory stream. The new position reverts to the one
- associated with the directory stream when
- \fItelldir\fR()
- was performed.
- .P
- If the value of
- .IR loc
- was not obtained from an earlier call to
- \fItelldir\fR(),
- or if a call to
- \fIrewinddir\fR()
- occurred between the call to
- \fItelldir\fR()
- and the call to
- \fIseekdir\fR(),
- the results of subsequent calls to
- \fIreaddir\fR()
- are unspecified.
- .SH "RETURN VALUE"
- The
- \fIseekdir\fR()
- function shall not return a value.
- .SH ERRORS
- No errors are defined.
- .LP
- .IR "The following sections are informative."
- .SH EXAMPLES
- None.
- .SH "APPLICATION USAGE"
- None.
- .SH RATIONALE
- The original standard developers perceived that there were restrictions
- on the use of the
- \fIseekdir\fR()
- and
- \fItelldir\fR()
- 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 option.
- .P
- 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
- \fIseekdir\fR()
- and
- \fItelldir\fR()
- does not specify whether, when using these interfaces, a given
- directory entry will be seen at all, or more than once.
- .P
- On systems not supporting these functions, their capability can
- sometimes be accomplished by saving a filename found by
- \fIreaddir\fR()
- and later using
- \fIrewinddir\fR()
- and a loop on
- \fIreaddir\fR()
- to relocate the position from which the filename was saved.
- .SH "FUTURE DIRECTIONS"
- None.
- .SH "SEE ALSO"
- .IR "\fIfdopendir\fR\^(\|)",
- .IR "\fIreaddir\fR\^(\|)",
- .IR "\fItelldir\fR\^(\|)"
- .P
- The Base Definitions volume of POSIX.1\(hy2017,
- .IR "\fB<dirent.h>\fP",
- .IR "\fB<sys_types.h>\fP"
- .\"
- .SH COPYRIGHT
- Portions of this text are reprinted and reproduced in electronic form
- from IEEE Std 1003.1-2017, Standard for Information Technology
- -- Portable Operating System Interface (POSIX), The Open Group Base
- Specifications Issue 7, 2018 Edition,
- Copyright (C) 2018 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 .
- .PP
- Any typographical or formatting errors that appear
- in this page are most likely
- to have been introduced during the conversion of the source files to
- man page format. To report such errors, see
- https://www.kernel.org/doc/man-pages/reporting_bugs.html .