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

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1997 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: ByteArrObj.3,v 1.3 2001/04/04 16:07:20 kennykb Exp $
  8. '" 
  9. .so man.macros
  10. .TH Tcl_ByteArrayObj 3 8.1 Tcl "Tcl Library Procedures"
  11. .BS
  12. .SH NAME
  13. Tcl_NewByteArrayObj, Tcl_SetByteArrayObj, Tcl_GetByteArrayFromObj, Tcl_SetByteArrayLength - manipulate Tcl objects as a arrays of bytes 
  14. .SH SYNOPSIS
  15. .nf
  16. fB#include <tcl.h>fR
  17. .sp
  18. Tcl_Obj *
  19. fBTcl_NewByteArrayObjfR(fIbytes, lengthfR)
  20. .sp
  21. void 
  22. fBTcl_SetByteArrayObjfR(fIobjPtr, bytes, lengthfR)
  23. .sp
  24. unsigned char *
  25. fBTcl_GetByteArrayFromObjfR(fIobjPtr, lengthPtrfR)
  26. .sp
  27. unsigned char *
  28. fBTcl_SetByteArrayLengthfR(fIobjPtr, lengthfR)
  29. .SH ARGUMENTS
  30. .AS "unsigned char" *lengthPtr in/out
  31. .AP "CONST unsigned char" *bytes in
  32. The array of bytes used to initialize or set a byte-array object.
  33. .AP int length in
  34. The length of the array of bytes.  It must be >= 0.
  35. .AP Tcl_Obj *objPtr in/out
  36. For fBTcl_SetByteArrayObjfR, this points to the object to be converted to
  37. byte-array type.  For fBTcl_GetByteArrayFromObjfR and
  38. fBTcl_SetByteArrayLengthfR, this points to the object from which to get
  39. the byte-array value; if fIobjPtrfR does not already point to a byte-array
  40. object, it will be converted to one.
  41. .AP int *lengthPtr out
  42. If non-NULL, filled with the length of the array of bytes in the object.
  43. .BE
  44. .SH DESCRIPTION
  45. .PP
  46. These procedures are used to create, modify, and read Tcl byte-array objects
  47. from C code.  Byte-array objects are typically used to hold the
  48. results of binary IO operations or data structures created with the
  49. fBbinaryfR command.  In Tcl, an array of bytes is not equivalent to a
  50. string.  Conceptually, a string is an array of Unicode characters, while a
  51. byte-array is an array of 8-bit quantities with no implicit meaning.
  52. Accesser functions are provided to get the string representation of a
  53. byte-array or to convert an arbitrary object to a byte-array.  Obtaining the
  54. string representation of a byte-array object (by calling
  55. fBTcl_GetStringFromObjfR) produces a properly formed UTF-8 sequence with a
  56. one-to-one mapping between the bytes in the internal representation and the
  57. UTF-8 characters in the string representation.  
  58. .PP
  59. fBTcl_NewByteArrayObjfR and fBTcl_SetByteArrayObjfR will
  60. create a new object of byte-array type or modify an existing object to have a
  61. byte-array type.  Both of these procedures set the object's type to be
  62. byte-array and set the object's internal representation to a copy of the
  63. array of bytes given by fIbytesfR. fBTcl_NewByteArrayObjfR returns a
  64. pointer to a newly allocated object with a reference count of zero.
  65. fBTcl_SetByteArrayObjfR invalidates any old string representation and, if
  66. the object is not already a byte-array object, frees any old internal
  67. representation.
  68. .PP
  69. fBTcl_GetByteArrayFromObjfR converts a Tcl object to byte-array type and
  70. returns a pointer to the object's new internal representation as an array of
  71. bytes.  The length of this array is stored in fIlengthPtrfR if
  72. fIlengthPtrfR is non-NULL.  The storage for the array of bytes is owned by
  73. the object and should not be freed.  The contents of the array may be
  74. modified by the caller only if the object is not shared and the caller
  75. invalidates the string representation.  
  76. .PP
  77. fBTcl_SetByteArrayLengthfR converts the Tcl object to byte-array type
  78. and changes the length of the object's internal representation as an
  79. array of bytes.  If fIlengthfR is greater than the space currently
  80. allocated for the array, the array is reallocated to the new length; the
  81. newly allocated bytes at the end of the array have arbitrary values.  If
  82. fIlengthfR is less than the space currently allocated for the array,
  83. the length of array is reduced to the new length.  The return value is a
  84. pointer to the object's new array of bytes.  
  85. .SH "SEE ALSO"
  86. Tcl_GetStringFromObj, Tcl_NewObj, Tcl_IncrRefCount, Tcl_DecrRefCount
  87. .SH KEYWORDS
  88. object, byte array, utf, unicode, internationalization