Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ () — Coherent 3.1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought


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


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026