en

path.3


Introduction to Library Functions                         PATH(3)

NAME
     path - file path routines

SYNOPSIS
          #include <ast.h>

          char*     pathaccess(char* path, const char* dirs, const char* a, const char* b, int mode);
          char*     pathbin(void);
          char*     pathcanon(char* path, int flags);
          char*     pathcat(char* path, const char* dirs, int sep, const char* a, const char* b);
          char*     pathcd(char* path, const char* home);
          int       pathcheck(const char* package, const char* tool, Pathcheck_t* pc);
          int       pathgetlink(const char* name, char* buf, int siz);
          char*     pathkey(char* key, char* attr, const char* lang, const char* path);
          char*     pathnext(char* path, char* extra, long* visits);
          char*     pathpath(char* path, const char* p, const char* a, int mode);
          char*     pathprobe(char* path, char* attr, const char* lang, const char* tool, const char* proc, int op);
          char*     pathrepl(char* path, const char* match, const char* replace);
          int       pathsetlink(const char* text, char* name);
          char*     pathshell(void);
          int       pathstat(const char* path, struct stat* st);
          char*     pathtemp(char* path, const char* dir, const char* pfx);

DESCRIPTION
     These routines operate on file path names.  Path buffers are
     assumed  to  be  of  size  PATH_MAX.  <ast.h> always defines
     PATH_MAX, even if it  indeterminant  on  the  local  system.
     Yes,  this  was probably a bad choice, but it was made about
     10 years ago.  We will probably  move  to  a  <stk.h>  based
     implementation.

     pathaccess constructs a path in path to the  file  a/b  with
     access  mode  using  the  :   separated directories in dirs.
     Both a and b may be 0.  mode is the inclusive-or of:

     F_OK File exists.

     R_OK Read permission on file.

     W_OK Write permission on file.

     X_OK Execute permission on file.

     PATH_REGULAR
          A regular file.

     PATH_ABSOLUTE
          Generated path name is rooted at /.  path is  returned,
          0 on error.

     pathbin returns a pointer to the :  separated list of direc-
     tories   to   search  for  executable  commands.   The  PATH

SunOS 5.10                Last change:                          1

Introduction to Library Functions                         PATH(3)

     environment variable is first  consulted.   If  not  defined
     then  confstr(_CS_PATH,...)   is  used.   A  valid string is
     always returned.

     pathcanon canonicalizes the path path in place.   A  pointer
     to  the trailing 0 in the canonicalized path is returned.  A
     canonical path has:  redundant .  and / removed;  ..   moved
     to  the  front;  /..   preserved  for  super root hacks; ...
     resolved if fs3d(3) is enabled.  flags is  the  inclusive-or
     of:

     PATH_DOTDOT
          Each ..  is checked for access.

     PATH_EXISTS
          Path must exist at each component.

     PATH_PHYSICAL
          Symbolic links are resolved at each component.

     0 is returned on error.  If an error occurs  and  either  of
     PATH_DOTDOT or PATH_EXISTS is set then path will contain the
     components following the failure point.

     pathcat concatenates the first sep separated path  component
     in  dirs  with  the  path components a and b into path.  The
     path is constructed in path by  separating  each  path  com-
     ponent  with  /.   Both  a and b may be 0.  A pointer to the
     next sep separated component in dirs  is  returned,  0  when
     there  are  no  more components.  pathcat is used by pathac-
     cess.

     pathcd sets  the  current  working  directory  to  path  via
     chdir(2).   If path is longer than PATH_MAX then it is split
     up into a sequence of relative paths and chdir is called  on
     each of these.  For any given system, if you got to a direc-
     tory, then pathcd can get you back,  modulo  permission  and
     link changes.

     pathcheck is a stub for license libraries.  See license(3).

     pathgetlink returns the 0-terminated symbolic link text  for
     path  in the buffer bu of size siz.  The link text length is
     returned on  success,  -1  on  error.   Weird  universe  (1)
     interactions with dynamic symbolic links are handled by con-
     verting non-standard dynamic  link  text  to  pathsetsymlink
     converts in the other direction.

     pathkey generates in key a 14  character  lookup  key  (plus
     terminating  0)  for the language lang processor in path.  A
     poihter to the key is returned, 0 on error.   If  key  ==  0
     then   space  is  allocated  via  malloc(3).   Key  specific

SunOS 5.10                Last change:                          2

Introduction to Library Functions                         PATH(3)

     attribute name=value pairs are copied into attr if  attr  !=
     0.

     pathpath constructs in path a path to p with access(2)  mode
     mode  using  the directories from pathbin().  If a != 0 then
     a, argv[0] (if available via optget(3)), and the _  environ-
     ment  variable  (set  by  ksh(1))  are used for related root
     searching.  If p also contains a /  then  ../p  is  searched
     for.

     pathprobe generates in path the full path name of  the  tool
     specific  probe(1)  information  file  for the lang langauge
     processor proc.  If path == 0 then space  is  allocated  via
     malloc(3).  Probe attribute name=value pairs are copied into
     attr if attr != 0.  op may be one of:

     -1   return the path name with no access checks  or  genera-
          tion

     0    message  emitted  information  must  be  generated  via
          probe(1)

     1    no message  emitted  information  must  be  probed  via
          probe(1)

     0 is returned if the information does not exist  and  cannot
     be generated.

     pathrepl  does  an  in-place  replacement   of   the   first
     occurrence of /match/ with /replace/ in path.

     pathsetlink creates a symbolic link text in the  path  name.
     See  pathgetlink  above  for  weird universe(1) interactions
     hidden by this routine.

     pathshell returns a pointer to the pathname  for  the  shell
     for  the current process.  The SHELL environment variable is
     first  consulted,   but   is   rejected   under   suspicious
     ownership/setuid  conditions  of  if  it  seems  to point to
     csh(1); otherwise confstr(_CS_SHELL,...)  is used.  A  valid
     string is always returned.

     pathstat first tries and if that fails it tries The stat  or
     lstat return value is returned.

     pathtemp generates in path a temporary file path name of the
     form  dir/pfx<pid>.<suf> where the length of pfx, if !=0, is
     limited to 5, the length of <pid> (the base  64  representa-
     tion  of  the current process id) is limited to 3, and <suf>
     (an internally generated suffix that avoid file  confilicts)
     is  limited  to  3.  The generated path name conforms to the
     classic UNIX 14 char and the DOS 8.3 limitations.  Both  dir

SunOS 5.10                Last change:                          3

Introduction to Library Functions                         PATH(3)

     and pfx may be 0.  access(2) is used to avoid file conflicts
     but the generated path name is not  created,  so  you  could
     lose in a race.

SEE ALSO
     3d(1), access(2), confstr(3), fs3d(3), lstat(2), stat(2)

SunOS 5.10                Last change:                          4


Generated by GNU enscript 1.6.4.

Tags:
Created by admin on 2009/10/26 12:14
Last modified by admin on 2009/10/26 12:14

Collectives

Project ksh93-integration Pages


XWiki Enterprise 2.7.1.34853 - Documentation