DragonFly On-Line Manual Pages

Search: Section:  


DIRECTORY(3)	      DragonFly Library Functions Manual	  DIRECTORY(3)

NAME

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

LIBRARY

Standard C Library (libc, -lc)

SYNOPSIS

#include <sys/types.h> #include <dirent.h> DIR * fdopendir(int fd); DIR * opendir(const char *filename); struct dirent * readdir(DIR *dirp); int readdir_r(DIR * restrict dirp, struct dirent * restrict entry, struct dirent ** restrict result); long telldir(DIR *dirp); void seekdir(DIR *dirp, long loc); void rewinddir(DIR *dirp); int closedir(DIR *dirp); int dirfd(DIR *dirp);

DESCRIPTION

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. The pointer NULL is returned if filename cannot be accessed, or if it cannot malloc(3) enough memory to hold the whole thing. The fdopendir() function associates a directory stream with the directory file descriptor fd. The file offset associated with fd at the time of the call determines which entries are returned. The file descriptor must not be used further by the caller in any way. The readdir() function returns a pointer to the next directory entry. It returns NULL upon reaching the end of the directory or detecting an invalid seekdir() operation. The readdir_r() function provides the same functionality as readdir(), but the caller must provide a directory entry buffer to store the results in. If the read succeeds, result is pointed at the entry; upon reaching the end of the directory result is set to NULL. The readdir_r() function returns 0 on success or an error number to indicate failure. The telldir() function returns the current location associated with the named directory stream. 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, prior values returned by telldir() will no longer be valid. The seekdir() function sets the position of the next readdir() operation on the directory stream. The new position reverts to the one associated with the directory stream when the telldir() operation was performed. The rewinddir() function resets the position of the named directory stream 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, see open(2). Sample code which searches a directory for entry ``name'' is: len = strlen(name); dirp = opendir("."); 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

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

HISTORY

The opendir(), readdir(), telldir(), seekdir(), rewinddir(), closedir(), and dirfd() functions appeared in 4.2BSD. DragonFly 5.3 February 22, 2018 DragonFly 5.3 READDIR(3am) GNU Awk Extension Modules READDIR(3am)

NAME

readdir - directory input parser for gawk

SYNOPSIS

@load "readdir"

DESCRIPTION

The readdir extension adds an input parser for directories. When this extension is in use, instead of skipping directories named on the command line (or with getline), they are read, with each entry returned as a record. The record consists of three fields. The first two are the inode number and the filename, separated by a forward slash character. On systems where the directory entry contains the file type, the record has a third field which is a single letter indicating the type of the file: f for file, d for directory, b for a block device, c for a character device, p for a FIFO, l for a symbolic link, s for a socket, and u (unknown) for anything else. On systems without the file type information, the third field is always u.

NOTES

On GNU/Linux systems, there are filesystems that don't support the d_type entry (see readdir(3)), and so the file type is always u. You can use the filefuncs extension to call stat() in order to get correct type information.

EXAMPLE

@load "readdir" ... BEGIN { FS = "/" } { print "file name is", $2 }

SEE ALSO

GAWK: Effective AWK Programming, filefuncs(3am), fnmatch(3am), fork(3am), inplace(3am), ordchr(3am), readfile(3am), revoutput(3am), rwarray(3am), time(3am). opendir(3), readdir(3), stat(2).

AUTHOR

Arnold Robbins, arnold@skeeve.com.

COPYING PERMISSIONS

Copyright (C) 2012, 2013, Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual page provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual page under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this man- ual page into another language, under the above conditions for modified versions, except that this permission notice may be stated in a trans- lation approved by the Foundation. Free Software Foundation Jan 15 2013 READDIR(3am)

Search: Section: