path() General Function path()
Path name for a file
#include <path.h>
#include <stdio.h>
char *path(path, filename, mode);
char *path, *filename;
int mode;
The function path builds a path name for a file.
path points to the list of directories to be searched for the
file. You can use the function getenv to obtain the current
definition of the environmental variable PATH, or use the default
setting of PATH found in the header file path.h, or, you can
define path by hand.
filename is the name of the file for which path is to search.
mode is the mode in which you wish to access the file, as
follows:
1 Execute the file
2 Write to the file
4 Read the file
path calls the function access to check the access status of
filename. If path finds the file you requested and the file is
available in the mode that you requested, it returns a pointer to
a static area in which it has built the appropriate path name.
It returns NULL if either path or filename are NULL, if the
search failed, or if the requested file is not available in the
correct mode.
***** Example *****
This example accepts a file name and a search mode. It then
tries to find the file in one of the directories named in the
PATH environmental variable.
#include <path.h>
#include <stdio.h>
#include <stdlib.h>
void
fatal(message)
char *message;
{
fprintf(stderr, "%s\n", message);
exit(1);
}
COHERENT Lexicon Page 1
path() General Function path()
main(argc, argv)
int argc; char *argv[];
{
char *env, *pathname;
int mode;
if (argc != 3)
fatal("Usage: findpath filename mode");
if(((mode=atoi(argv[2]))>4) || (mode==3) || (mode<1))
fatal("modes: 1=execute, 2=write, 3=read");
env = getenv("PATH");
if ((pathname = path(env, argv[1], mode)) != NULL) {
printf("PATH = %s\n", env);
printf("pathname = %s\n", pathname);
return;
} else
fatal("search failed");
}
***** See Also *****
access(), access.h, general functions, PATH, path.h
COHERENT Lexicon Page 2