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

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1995-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: filename.n,v 1.7.12.3 2007/12/31 17:56:34 dgp Exp $
  8. '" 
  9. .so man.macros
  10. .TH filename n 7.5 Tcl "Tcl Built-In Commands"
  11. .BS
  12. '" Note:  do not modify the .SH NAME line immediately below!
  13. .SH NAME
  14. filename - File name conventions supported by Tcl commands
  15. .BE
  16. .SH INTRODUCTION
  17. .PP
  18. All Tcl commands and C procedures that take file names as arguments
  19. expect the file names to be in one of three forms, depending on the
  20. current platform.  On each platform, Tcl supports file names in the
  21. standard forms(s) for that platform.  In addition, on all platforms,
  22. Tcl supports a Unix-like syntax intended to provide a convenient way
  23. of constructing simple file names.  However, scripts that are intended
  24. to be portable should not assume a particular form for file names.
  25. Instead, portable scripts must use the fBfile splitfR and fBfile
  26. joinfR commands to manipulate file names (see the fBfilefR manual
  27. entry for more details).
  28. .SH "PATH TYPES"
  29. .PP
  30. File names are grouped into three general types based on the starting point
  31. for the path used to specify the file: absolute, relative, and
  32. volume-relative.  Absolute names are completely qualified, giving a path to
  33. the file relative to a particular volume and the root directory on that
  34. volume.  Relative names are unqualified, giving a path to the file relative 
  35. to the current working directory.  Volume-relative names are partially
  36. qualified, either giving the path relative to the root directory on the
  37. current volume, or relative to the current directory of the specified
  38. volume.  The fBfile pathtypefR command can be used to determine the
  39. type of a given path.
  40. .SH "PATH SYNTAX"
  41. .PP
  42. The rules for native names depend on the value reported in the Tcl
  43. array element fBtcl_platform(platform)fR:
  44. .TP 10
  45. fBmacfR
  46. On Apple Macintosh systems, Tcl supports two forms of path names.  The
  47. normal Mac style names use colons as path separators.  Paths may be
  48. relative or absolute, and file names may contain any character other
  49. than colon.  A leading colon causes the rest of the path to be
  50. interpreted relative to the current directory.  If a path contains a
  51. colon that is not at the beginning, then the path is interpreted as an
  52. absolute path.  Sequences of two or more colons anywhere in the path
  53. are used to construct relative paths where fB::fR refers to the
  54. parent of the current directory, fB:::fR refers to the parent of the
  55. parent, and so forth.
  56. .RS
  57. .PP
  58. In addition to Macintosh style names, Tcl also supports a subset of
  59. Unix-like names.  If a path contains no colons, then it is interpreted
  60. like a Unix path.  Slash is used as the path separator.  The file name
  61. fB&.fR refers to the current directory, and fB&..fR refers to the
  62. parent of the current directory.  However, some names like fB/fR or
  63. fB/..fR have no mapping, and are interpreted as Macintosh names.  In
  64. general, commands that generate file names will return Macintosh style
  65. names, but commands that accept file names will take both Macintosh
  66. and Unix-style names.
  67. .PP
  68. The following examples illustrate various forms of path names:
  69. .TP 15
  70. fB:fR
  71. Relative path to the current folder.
  72. .TP 15
  73. fBMyFilefR
  74. Relative path to a file named fBMyFilefR in the current folder.
  75. .TP 15
  76. fBMyDisk:MyFilefR
  77. Absolute path to a file named fBMyFilefR on the device named fBMyDiskfR.
  78. .TP 15
  79. fB:MyDir:MyFilefR
  80. Relative path to a file name fBMyFilefR in a folder named
  81. fBMyDirfR in the current folder.
  82. .TP 15
  83. fB::MyFilefR
  84. Relative path to a file named fBMyFilefR in the folder above the
  85. current folder.
  86. .TP 15
  87. fB:::MyFilefR
  88. Relative path to a file named fBMyFilefR in the folder two levels above the
  89. current folder. 
  90. .TP 15
  91. fB/MyDisk/MyFilefR
  92. Absolute path to a file named fBMyFilefR on the device named
  93. fBMyDiskfR.
  94. .TP 15
  95. fB&../MyFilefR
  96. Relative path to a file named fBMyFilefR in the folder above the
  97. current folder.
  98. .RE
  99. .TP
  100. fBunixfR
  101. On Unix platforms, Tcl uses path names where the components are
  102. separated by slashes.  Path names may be relative or absolute, and
  103. file names may contain any character other than slash.  The file names
  104. fB&.fR and fB&..fR are special and refer to the current directory
  105. and the parent of the current directory respectively.  Multiple
  106. adjacent slash characters are interpreted as a single separator.
  107. The following examples illustrate various forms of path names:
  108. .RS
  109. .TP 15
  110. fB/fR
  111. Absolute path to the root directory.
  112. .TP 15
  113. fB/etc/passwdfR
  114. Absolute path to the file named fBpasswdfR in the directory
  115. fBetcfR in the root directory.
  116. .TP 15
  117. fB&.fR
  118. Relative path to the current directory.
  119. .TP 15
  120. fBfoofR
  121. Relative path to the file fBfoofR in the current directory.
  122. .TP 15
  123. fBfoo/barfR
  124. Relative path to the file fBbarfR in the directory fBfoofR in the
  125. current directory.
  126. .TP 15
  127. fB&../foofR
  128. Relative path to the file fBfoofR in the directory above the current
  129. directory. 
  130. .RE
  131. .TP
  132. fBwindowsfR
  133. On Microsoft Windows platforms, Tcl supports both drive-relative and UNC
  134. style names.  Both fB/fR and fBefR may be used as directory separators
  135. in either type of name.  Drive-relative names consist of an optional drive
  136. specifier followed by an absolute or relative path.  UNC paths follow the
  137. general form fBeeservernameesharenameepathefilefR, but must at
  138. the very least contain the server and share components, i.e. 
  139. fBeeservernameesharenamefR.  In both forms,
  140. the file names fB.fR and fB..fR are special and refer to the current
  141. directory and the parent of the current directory respectively.  The
  142. following examples illustrate various forms of path names:
  143. .RS
  144. .TP 15
  145. fB&eeHosteshare/filefR
  146. Absolute UNC path to a file called fBfilefR in the root directory of
  147. the export point fBsharefR on the host fBHostfR.  Note that
  148. repeated use of fBfile dirnamefR on this path will give
  149. fB//Host/sharefR, and will never give just fB//HostfR.
  150. .TP 15
  151. fBc:foofR
  152. Volume-relative path to a file fBfoofR in the current directory on drive
  153. fBcfR.
  154. .TP 15
  155. fBc:/foofR
  156. Absolute path to a file fBfoofR in the root directory of drive
  157. fBcfR.
  158. .TP 15
  159. fBfooebarfR
  160. Relative path to a file fBbarfR in the fBfoofR directory in the current
  161. directory on the current volume.
  162. .TP 15
  163. fB&efoofR
  164. Volume-relative path to a file fBfoofR in the root directory of the current
  165. volume.
  166. .TP 15
  167. fB&eefoofR
  168. Volume-relative path to a file fBfoofR in the root directory of the current
  169. volume.  This is not a valid UNC path, so the assumption is that the
  170. extra backslashes are superfluous.
  171. .RE
  172. .SH "TILDE SUBSTITUTION"
  173. .PP
  174. In addition to the file name rules described above, Tcl also supports
  175. fIcshfR-style tilde substitution.  If a file name starts with a
  176. tilde, then the file name will be interpreted as if the first element
  177. is replaced with the location of the home directory for the given
  178. user.  If the tilde is followed immediately by a separator, then the
  179. fB$HOMEfR environment variable is substituted.  Otherwise the
  180. characters between the tilde and the next separator are taken as a
  181. user name, which is used to retrieve the user's home directory for
  182. substitution.
  183. .PP
  184. The Macintosh and Windows platforms do not support tilde substitution
  185. when a user name follows the tilde.  On these platforms, attempts to
  186. use a tilde followed by a user name will generate an error that the
  187. user does not exist when Tcl attempts to interpret that part of the
  188. path or otherwise access the file.  The behaviour of these paths
  189. when not trying to interpret them is the same as on Unix.  File
  190. names that have a tilde without a user name will be correctly
  191. substituted using the fB$HOMEfR environment variable, just like 
  192. for Unix.
  193. .SH "PORTABILITY ISSUES"
  194. .PP
  195. Not all file systems are case sensitive, so scripts should avoid code
  196. that depends on the case of characters in a file name.  In addition,
  197. the character sets allowed on different devices may differ, so scripts
  198. should choose file names that do not contain special characters like:
  199. fB<>:"/e|fR.  The safest approach is to use names consisting of
  200. alphanumeric characters only.  Also Windows 3.1 only supports file
  201. names with a root of no more than 8 characters and an extension of no
  202. more than 3 characters.
  203. .PP
  204. On Windows platforms there are file and path length restrictions. 
  205. Complete paths or filenames longer than about 260 characters will lead
  206. to errors in most file operations.
  207. .PP
  208. Another Windows peculiarity is that any number of trailing dots '.'  in
  209. filenames are totally ignored, so, for example, attempts to create a
  210. file or directory with a name "foo." will result in the creation of a
  211. file/directory with name "foo".  This fact is reflected in the
  212. results of 'file normalize'.  Furthermore, a file name consisting only
  213. of dots '.........' or dots with trailing characters '.....abc' is
  214. illegal.
  215. .SH KEYWORDS
  216. current directory, absolute file name, relative file name,
  217. volume-relative file name, portability
  218. .SH "SEE ALSO"
  219. file(n), glob(n)