Amiga Unix — 68040 · 68060

Manual pages › General-purpose library (3G)

pathfind(3G)

search for named file in named directories

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

pathfind - search for named file in named directories

SYNOPSIS

cc [flag ...] file ...  -lgen [library ...]

#include <libgen.h>

char *pathfind (const char *path, const char *name, const char
    *mode);

DESCRIPTION

pathfind searches the directories named in path for the file
name.   The directories named in path are separated by semi-
colons.  mode is a string of option letters chosen from  the
set rwxfbcdpugks:
                 Letter   Meaning
                 __________________________
                   r      readable
                   w      writable
                   x      executable
                   f      normal file
                   b      block special
                   c      character special
                   d      directory
                   p      FIFO (pipe)
                   u      set user ID bit
                   g      set group ID bit
                   k      sticky bit
                   s      size nonzero
Options read, write, and execute are checked relative to the
real (not the effective) user ID and group ID of the current
process.  If the file name,  with  all  the  characteristics
specified by mode, is found in any of the directories speci-
fied by path, then pathfind returns a pointer  to  a  string
containing the member of path, followed by a slash character
(/), followed by name.

If name begins with a slash, it is treated as an absolute path name, and path is ignored. An empty path member is treated as the current directory. rather, the unadorned name is returned.

EXAMPLES

To find the ls command using the PATH environment variable:

pathfind (getenv ("PATH"), "ls", "rx")

SEE ALSO

access(2), mknod(2), stat(2), getenv(3C).
sh(1), test(1) in the User's Reference Manual.

DIAGNOSTICS

If no match is found, pathname returns a null pointer, ((char *) 0).

NOTES

The string pointed to by the returned pointer is stored in a static area that is reused on subsequent calls to pathfind.