SplitPath.3
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1996 Sun Microsystems, Inc.
  3. '"
  4. '" See the file "license.terms" for information on usage and redistribution
  5. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  6. '" 
  7. '" RCS: @(#) $Id: SplitPath.3,v 1.7 2002/03/09 19:17:58 dgp Exp $
  8. '" 
  9. .so man.macros
  10. .TH Tcl_SplitPath 3 7.5 Tcl "Tcl Library Procedures"
  11. .BS
  12. .SH NAME
  13. Tcl_SplitPath, Tcl_JoinPath, Tcl_GetPathType - manipulate platform-dependent file paths
  14. .SH SYNOPSIS
  15. .nf
  16. fB#include <tcl.h>fR
  17. .sp
  18. fBTcl_SplitPathfR(fIpath, argcPtr, argvPtrfR)
  19. .sp
  20. char *
  21. fBTcl_JoinPathfR(fIargc, argv, resultPtrfR)
  22. .sp
  23. Tcl_PathType
  24. fBTcl_GetPathTypefR(fIpathfR)
  25. .SH ARGUMENTS
  26. .AS Tcl_DString ***argvPtr
  27. .AP "CONST char * CONST" *argvPtr in
  28. File path in a form appropriate for the current platform (see the
  29. fBfilenamefR manual entry for acceptable forms for path names).
  30. .AP int *argcPtr out
  31. Filled in with number of path elements in fIpathfR.
  32. .AP "CONST char" ***argvPtr out
  33. fI*argvPtrfR will be filled in with the address of an array of
  34. pointers to the strings that are the extracted elements of fIpathfR.
  35. There will be fI*argcPtrfR valid entries in the array, followed by
  36. a NULL entry.
  37. .AP int argc in
  38. Number of elements in fIargvfR.
  39. .AP "CONST char * CONST" *argv in
  40. Array of path elements to merge together into a single path.
  41. .AP Tcl_DString *resultPtr in/out
  42. A pointer to an initialized fBTcl_DStringfR to which the result of
  43. fBTcl_JoinPathfR will be appended.
  44. .BE
  45. .SH DESCRIPTION
  46. .PP
  47. These procedures have been superceded by the objectified procedures in
  48. the fBFileSystemfR man page, which are more efficient.
  49. .PP
  50. These procedures may be used to disassemble and reassemble file
  51. paths in a platform independent manner: they provide C-level access to
  52. the same functionality as the fBfile splitfR, fBfile joinfR, and
  53. fBfile pathtypefR commands.
  54. .PP
  55. fBTcl_SplitPathfR breaks a path into its constituent elements,
  56. returning an array of pointers to the elements using fIargcPtrfR and
  57. fIargvPtrfR.  The area of memory pointed to by fI*argvPtrfR is
  58. dynamically allocated; in addition to the array of pointers, it also
  59. holds copies of all the path elements.  It is the caller's
  60. responsibility to free all of this storage.
  61. For example, suppose that you have called fBTcl_SplitPathfR with the
  62. following code:
  63. .CS
  64. int argc;
  65. char *path;
  66. char **argv;
  67. &...
  68. Tcl_SplitPath(string, &argc, &argv);
  69. .CE
  70. Then you should eventually free the storage with a call like the
  71. following:
  72. .CS
  73. Tcl_Free((char *) argv);
  74. .CE
  75. .PP
  76. fBTcl_JoinPathfR is the inverse of fBTcl_SplitPathfR: it takes a
  77. collection of path elements given by fIargcfR and fIargvfR and
  78. generates a result string that is a properly constructed path. The
  79. result string is appended to fIresultPtrfR.  fIResultPtrfR must
  80. refer to an initialized fBTcl_DStringfR.
  81. .PP
  82. If the result of fBTcl_SplitPathfR is passed to fBTcl_JoinPathfR,
  83. the result will refer to the same location, but may not be in the same
  84. form.  This is because fBTcl_SplitPathfR and fBTcl_JoinPathfR
  85. eliminate duplicate path separators and return a normalized form for
  86. each platform.
  87. .PP
  88. fBTcl_GetPathTypefR returns the type of the specified fIpathfR,
  89. where fBTcl_PathTypefR is one of fBTCL_PATH_ABSOLUTEfR,
  90. fBTCL_PATH_RELATIVEfR, or fBTCL_PATH_VOLUME_RELATIVEfR.  See the
  91. fBfilenamefR manual entry for a description of the path types for
  92. each platform.
  93. .SH KEYWORDS
  94. file, filename, join, path, split, type