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

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1993 The Regents of the University of California.
  3. '" Copyright (c) 1994-1996 Sun Microsystems, Inc.
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '" 
  8. '" RCS: @(#) $Id: seek.n,v 1.5.8.1 2004/10/27 14:23:58 dkf Exp $
  9. '" 
  10. .so man.macros
  11. .TH seek n 8.1 Tcl "Tcl Built-In Commands"
  12. .BS
  13. '" Note:  do not modify the .SH NAME line immediately below!
  14. .SH NAME
  15. seek - Change the access position for an open channel
  16. .SH SYNOPSIS
  17. fBseek fIchannelId offset fR?fIoriginfR?
  18. .BE
  19. .SH DESCRIPTION
  20. .PP
  21. Changes the current access position for fIchannelIdfR.
  22. .PP
  23. .VS
  24. fIChannelIdfR must be an identifier for an open channel such as a
  25. Tcl standard channel (fBstdinfR, fBstdoutfR, or fBstderrfR),
  26. the return value from an invocation of fBopenfR or fBsocketfR, or
  27. the result of a channel creation command provided by a Tcl extension.
  28. .VE
  29. .PP
  30. The fIoffsetfR and fIoriginfR
  31. arguments specify the position at which the next read or write will occur
  32. for fIchannelIdfR. fIOffsetfR must be an integer (which may be
  33. negative) and fIoriginfR must be one of the following:
  34. .TP 10
  35. fBstartfR
  36. The new access position will be fIoffsetfR bytes from the start
  37. of the underlying file or device.
  38. .TP 10
  39. fBcurrentfR
  40. The new access position will be fIoffsetfR bytes from the current
  41. access position; a negative fIoffsetfR moves the access position
  42. backwards in the underlying file or device.
  43. .TP 10
  44. fBendfR
  45. The new access position will be fIoffsetfR bytes from the end of
  46. the file or device.  A negative fIoffsetfR places the access position
  47. before the end of file, and a positive fIoffsetfR places the access
  48. position after the end of file.
  49. .LP
  50. The fIoriginfR argument defaults to fBstartfR.
  51. .PP
  52. The command flushes all buffered output for the channel before the command
  53. returns, even if the channel is in nonblocking mode.
  54. It also discards any buffered and unread input.
  55. This command returns an empty string.
  56. An error occurs if this command is applied to channels whose underlying
  57. file or device does not support seeking.
  58. .PP
  59. .VS 8.1
  60. Note that fIoffsetfR values are byte offsets, not character
  61. offsets.  Both fBseekfR and fBtellfR operate in terms of bytes,
  62. not characters, unlike fBreadfR.
  63. .VE 8.1
  64. .SH EXAMPLES
  65. Read a file twice:
  66. .CS
  67. set f [open file.txt]
  68. set data1 [read $f]
  69. fBseekfR $f 0
  70. set data2 [read $f]
  71. close $f
  72. # $data1 == $data2 if the file wasn't updated
  73. .CE
  74. .PP
  75. Read the last 10 bytes from a file:
  76. .CS
  77. set f [open file.data]
  78. # This is guaranteed to work with binary data but
  79. # may fail with other encodings...
  80. fconfigure $f -translation binary
  81. fBseekfR $f -10 end
  82. set data [read $f 10]
  83. close $f
  84. .CE
  85. .SH "SEE ALSO"
  86. file(n), open(n), close(n), gets(n), tell(n), Tcl_StandardChannels(3)
  87.  
  88. .SH KEYWORDS
  89. access position, file, seek