COHERENT manpages
This page displays the COHERENT manpage for path() [Path name for a file].
List of available manpages
Index
path() -- General Function (libc) 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: X_OK Execute the file W_OK Write to the file R_OK 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); } 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, 4=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(), libc, PATH, path.h