Tcl_SplitPath - dependent file paths
#include <tcl.h> Tcl_SplitPath(path, argcPtr, argvPtr) char * Tcl_JoinPath(argc, argv, resultPtr) Tcl_PathType Tcl_GetPathType(path)
Tcl_SplitPath(3tcl) Tcl Library Procedures Tcl_SplitPath(3tcl)
______________________________________________________________________________
NAME
Tcl_SplitPath, Tcl_JoinPath, Tcl_GetPathType - manipulate platform-
dependent file paths
SYNOPSIS
#include <tcl.h>
Tcl_SplitPath(path, argcPtr, argvPtr)
char *
Tcl_JoinPath(argc, argv, resultPtr)
Tcl_PathType
Tcl_GetPathType(path)
ARGUMENTS
const char *path (in) File path in a form appro-
priate for the current plat-
form (see the filename man-
ual entry for acceptable
forms for path names).
int *argcPtr (out) Filled in with number of
path elements in path.
const char ***argvPtr (out) *argvPtr will be filled in
with the address of an array
of pointers to the strings
that are the extracted ele-
ments of path. There will
be *argcPtr valid entries in
the array, followed by a
NULL entry.
int argc (in) Number of elements in argv.
const char *const *argv (in) Array of path elements to
merge together into a single
path.
Tcl_DString *resultPtr (in/out) A pointer to an initialized
Tcl_DString to which the
result of Tcl_JoinPath will
be appended.
______________________________________________________________________________
DESCRIPTION
These procedures have been superseded by the Tcl-value-aware procedures
in the FileSystem man page, which are more efficient.
These procedures may be used to disassemble and reassemble file paths
in a platform independent manner: they provide C-level access to the
same functionality as the file split, file join, and file pathtype com-
mands.
Tcl_SplitPath breaks a path into its constituent elements, returning an
array of pointers to the elements using argcPtr and argvPtr. The area
of memory pointed to by *argvPtr is dynamically allocated; in addition
to the array of pointers, it also holds copies of all the path ele-
ments. It is the caller's responsibility to free all of this storage.
For example, suppose that you have called Tcl_SplitPath with the fol-
lowing code:
int argc;
char *path;
char **argv;
...
Tcl_SplitPath(string, &argc, &argv);
Then you should eventually free the storage with a call like the fol-
lowing:
Tcl_Free((char *) argv);
Tcl_JoinPath is the inverse of Tcl_SplitPath: it takes a collection of
path elements given by argc and argv and generates a result string that
is a properly constructed path. The result string is appended to
resultPtr. ResultPtr must refer to an initialized Tcl_DString.
If the result of Tcl_SplitPath is passed to Tcl_JoinPath, the result
will refer to the same location, but may not be in the same form. This
is because Tcl_SplitPath and Tcl_JoinPath eliminate duplicate path sep-
arators and return a normalized form for each platform.
Tcl_GetPathType returns the type of the specified path, where
Tcl_PathType is one of TCL_PATH_ABSOLUTE, TCL_PATH_RELATIVE, or
TCL_PATH_VOLUME_RELATIVE. See the filename manual entry for a descrip-
tion of the path types for each platform.
KEYWORDS
file, filename, join, path, split, type
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | runtime/tcl-8 |
+---------------+------------------+
|Stability | Uncommitted |
+---------------+------------------+
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from http://prdownloads.sourceforge.net/tcl/tcl-
core8.6.7-src.tar.gz.
Further information about this software can be found on the open source
community website at https://www.tcl.tk/.
Tcl 7.5 Tcl_SplitPath(3tcl)