unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



getdirentries(2)					     getdirentries(2)



NAME
  getdirentries	- Gets directory entries in a file-system independent format.

SYNOPSIS

  #include <&lt;dirent.h>&gt;

  int getdirentries(
	  int fd,
	  char *buf,
	  int nbytes,
	  long *basep );

PARAMETERS

  fd  Specifies	the file descriptor of a directory to be read.

  buf Points to	a buffer containing the	directory entries as dirent struc-
      tures.

  nbytes
      Specifies	the maximum amount of data to be transferred, in bytes.

  basep
      Points to	the position of	the block read.

DESCRIPTION

  The getdirentries() function reads directory entries from a directory	into
  a buffer.  The entries are returned as dirent	structures, a file-system
  independent format.

				    Caution

       This call is not	the POSIX-defined way to process directory
       entries.	 For POSIX interfaces, use the opendir(3),readdir(3),
       and closedir(3) library calls for reading and interpreting direc-
       tory entries.


  The nbytes parameter should be greater than or equal to the block size
  associated with the file.  (See stat(2).) Some file systems do not support
  the getdirentries() function with buffers smaller than this size.

  The entries returned by the getdirentries() function into the	location
  pointed to by	buf can	be separated by	extra space.

  The getdirentries() function writes the position of the block	read into the
  location pointed to by the basep parameter.  Alternatively, the current
  position pointer can be set and retrieved by lseek().	 The current position
  pointer should only be set to	a value	returned by lseek(), a value returned
  in the location pointed to by	basep, or 0 (zero).

  Upon successful completion, the actual number	of bytes transferred is
  returned and the current position pointer associated with the	fd parameter
  is set to point to the next block of entries.	 The file descriptor pointer
  might	not advance by the same	number of bytes	returned by the	getdiren-
  tries() function.  A value of	0 (zero) is returned when the end of the
  directory has	been reached.

RETURN VALUES

  Upon successful completion, the actual number	of bytes transferred is
  returned.  Otherwise,	-1 is returned and errno is set	to indicate the
  error.

ERRORS

  If the getdirentries() function fails, errno is set to one of	the following
  values:

  [EBADF]
      The fd parameter is not a	valid file descriptor open for reading.

  [EFAULT]
      Either the buf or	basep parameter	points outside the allocated address
      space.

  [EINVAL]
      Either the fd parameter is not a valid file descriptor for a directory
      or the buffer is too small.

  [EIO]
      An I/O error occurred while the operating	system was reading from	or
      writing to the file system.

RELATED	INFORMATION

  Functions: open(2), lseek(2)