## Tcl9.0.3/Tk9.0.3 Documentation > Tcl C API > SplitPath

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Tcl_SplitPath, Tcl_JoinPath, Tcl_GetPathType — OS依存のファイル経路の操作　 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
  説明 DESCRIPTION
  KEYWORDS

### NAME

Tcl_SplitPath, Tcl_JoinPath, Tcl_GetPathType — OS依存のファイル経路の操作　 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)
  現在のOSの為の適正な書式のファイル経路(経路名についての許容できる形式についてはファイル名filename取扱説明書項目を参照されたい)｡ File path in a form appropriate for the current platform (see the filename manual entry for acceptable forms for path names).

Tcl_Size &| int *argcPtr (出力out)
  経路内の経路要素の数で充たされる｡ 使われない場合は､(Tcl_Size *)NULLかもしれない｡ 型がTcl_Sizeでない変数を指す場合､機械語翻訳の警告が生成される｡ もし､使用者の拡張が-DTCL_8_API付きで機械語翻訳されていると､ この函数は､ INT_MAX要素を越える(それは適切な不都合-取扱いを起動する) 経路に関してargcPtrは-1で満たされる､ それ以外は崩壊が予想される｡ Filled in with number of path elements in path. May be (Tcl_Size *)NULL when not used. If it points to a variable which type is not Tcl_Size, a compiler warning will be generated. If your extensions is compiled with -DTCL_8_API, argcPtr will be filled with -1 for paths with more than INT_MAX elements (which should trigger proper error-handling), otherwise expect it to crash.

const char ***argvPtr (出力out)
  拡張されたリストの要素の文字列への指示子の配列の番地で *argvPtr が充たされる｡ NULL 項目が添付された､配列内の *argcPtr 個の適正な項目がある｡ *argvPtr will be filled in with the address of an array of pointers to the strings that are the extracted elements of path. There will be *argcPtr valid entries in the array, followed by a NULL entry.

Tcl_Size argc (入力in)
  argv 内の要素の数｡　 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)
  初期化された Tcl_DString への指示子であって､前者にはTcl_JoinPath の結果が追記される｡ A pointer to an initialized Tcl_DString to which the result of Tcl_JoinPath will be appended.

### 説明 DESCRIPTION

これ等の手続函数は､取扱説明書の FileSystem 頁内の Tcl-値取扱いの手続函数にとって代られており､そちらがより効果的である｡ These procedures have been superseded by the Tcl-value-aware procedures in the FileSystem man page, which are more efficient.

これ等の手続函数は､OS非依存の方法で逆アセンブルと再アセンブルファイル経路にも使用できる: それは file split と file join と file pathtype 命令と同じ機能を C-水準での利用を提供する｡ 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 commands.

Tcl_SplitPath は経路を構成要素の要素に分け､ argcPtr と argvPtr を使って要素のポインターの配列を返す｡ *argvPtr によって指される記憶領域は動的に割当てられる; 更に､ポインターの配列に加えて､全ての経路要素の複写も保有する｡これ等の全ての記憶域の解放は呼出し側の責務である｡譬えば､次の符号命令により Tcl_SplitPath が呼出されたと仮定しよう: 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 elements. It is the caller's responsibility to free all of this storage. For example, suppose that you have called Tcl_SplitPath with the following code:

    Tcl_Size argc;
    char *path;
    char **argv;
    	...
    Tcl_SplitPath(string, &argc, &argv);

最終的に次の様な呼出しにより領域を解放すべきである: Then you should eventually free the storage with a call like the following:

    Tcl_Free(argv);

Tcl_JoinPath は Tcl_SplitPath の逆である: argc と argv によって与えられる経路要素の集まりを取り､適切に構成された経路を結果の文字列として生成する｡結果の文字列は resultPtr に追記される｡ resultPtr は初期化された Tcl_DString を参照しなければならない｡ 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.

Tcl_SplitPath の結果が Tcl_JoinPath に渡されると､結果は同じ位置を参照するが､同じ形式ではないかもしれない｡これは Tcl_SplitPath と Tcl_JoinPath は重複する経路区切りを削除しそれぞれのOSの基準化形式を返す為である｡ 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 separators and return a normalized form for each platform.

Tcl_GetPathType は指定された経路の型を返す､ここで経路の型はTCL_PATH_ABSOLUTE, TCL_PATH_RELATIVE, or TCL_PATH_VOLUME_RELATIVE.の内の一つである｡それぞれのOSに関する経路の型の記述は取扱説明書の filename の見出しを参照されたい｡ 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 description of the path types for each platform.

### KEYWORDS

file, filename, join, path, split, type
Copyright © 1996 Sun Microsystems, Inc.