*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> closedir (3)              
Title
Content
Arch
Section
 

DIRECTORY(3)

Contents


NAME    [Toc]    [Back]

     opendir, readdir, readdir_r,  telldir,  seekdir,  rewinddir,
closedir, dirfd
     - directory operations

SYNOPSIS    [Toc]    [Back]

     #include <sys/types.h>
     #include <dirent.h>

     DIR *
     opendir(const char *filename);

     struct dirent *
     readdir(DIR *dirp);

     int
     readdir_r(DIR  *dirp,  struct  dirent  *entry, struct dirent
**result);

     long
     telldir(const DIR *dirp);

     void
     seekdir(DIR *dirp, long loc);

     void
     rewinddir(DIR *dirp);

     int
     closedir(DIR *dirp);

     int
     dirfd(DIR *dirp);

DESCRIPTION    [Toc]    [Back]

     The  opendir()  function  opens  the  directory   named   by
filename, associates
     a directory stream with it, and returns a pointer to be used
to identify
     the directory  stream  in  subsequent  operations.   A  null
pointer is returned
  if filename cannot be accessed, or if malloc(3) cannot allocate
     enough memory to hold the entire structure.

     The readdir() function returns a pointer to the next  directory entry in
     the  named  directory  stream  dirp.   It  returns NULL upon
reaching the end
     of the directory or detecting an  invalid  seekdir()  operation.

     The  readdir_r()  function (much like readdir()) initializes
the dirent
     structure referenced by entry to represent the next directory entry in
     the  named  directory  stream  dirp, and stores a pointer to
this structure
     at the location referenced by result.  The  storage  pointed
to by entry
     must be large enough for a dirent with a d_name array member
containing
     at least NAME_MAX plus one elements.  On successful  return,
the pointer
     returned at *result will have the same value as the argument
entry.  Upon
     reaching the end of the directory stream, this pointer shall
have the
     value NULL.

     The  telldir() function returns the current location associated with the
     named directory stream dirp.

     The  seekdir()  function  sets  the  position  of  the  next
readdir() operation
     on  the  named  directory stream dirp.  The new position reverts to the one
     associated with the directory stream when the telldir()  operation was
     performed.   Values  returned by telldir() are good only for
the lifetime
     of the DIR pointer, dirp, from which they are  derived.   If
the directory
     is  closed and then reopened, the telldir() value may be invalidated due
     to undetected directory compaction.  It is  safe  to  use  a
previous
     telldir()  value  immediately  after a call to opendir() and
before any
     calls to readdir().

     The rewinddir() function resets the position  of  the  named
directory
     stream dirp to the beginning of the directory.

     The  closedir()  function  closes the named directory stream
and frees the
     structure associated with the dirp pointer, returning  0  on
success.  On
     failure, -1 is returned and the global variable errno is set
to indicate
     the error.

     The dirfd() function returns the integer file descriptor associated with
     the named directory stream dirp (see open(2)).

EXAMPLES    [Toc]    [Back]

     Sample  code  which  searches a directory for entry ``name''
is:

           len = strlen(name);
           dirp = opendir(".");
           if (dirp) {
                   while ((dp = readdir(dirp)) != NULL)
                           if  (dp->d_namlen  ==  len  &&   !strcmp(dp->d_name, name)) {
                                   (void)closedir(dirp);
                                   return (FOUND);
                           }
                   (void)closedir(dirp);
           }
           return (NOT_FOUND);

SEE ALSO    [Toc]    [Back]

      
      
     close(2), getdirentries(2), lseek(2), open(2), dir(5)

HISTORY    [Toc]    [Back]

     The opendir(), readdir(), telldir(), seekdir(), rewinddir(),
closedir(),
     and dirfd() functions appeared in 4.2BSD.

OpenBSD      3.6                           June      4,      1993
[ Back ]
 Similar pages
Name OS Title
pxfdirectory IRIX Performs directory operations
directory IRIX directory operations (4.3BSD)
lndir OpenBSD create a shadow directory of symbolic links to another directory tree
lndir Tru64 create a shadow directory of symbolic links to another directory tree
cd_drec Tru64 reads the Directory Record from a CDROM directory
cd_cdrec Tru64 reads the Directory Record from a CDROM directory
dirent HP-UX format of directory streams and directory entries
cddrec Tru64 Read Directory Record from CD-ROM directory
pxfchroot IRIX Changes the root directory to a specified directory
pxfchdir IRIX Changes the current directory to a specified directory
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service