Tcl_GetByteArrayFromObj(3) - phpMan

Command: man perldoc info search(apropos)  


Tcl_ByteArrayObj(3)                   Tcl Library Procedures                  Tcl_ByteArrayObj(3)



_________________________________________________________________________________________________

NAME
       Tcl_NewByteArrayObj,  Tcl_SetByteArrayObj, Tcl_GetByteArrayFromObj, Tcl_SetByteArrayLength
       - manipulate Tcl objects as a arrays of bytes

SYNOPSIS
       #include <tcl.h>

       Tcl_Obj *
       Tcl_NewByteArrayObj(bytes, length)

       void
       Tcl_SetByteArrayObj(objPtr, bytes, length)

       unsigned char *
       Tcl_GetByteArrayFromObj(objPtr, lengthPtr)

       unsigned char *
       Tcl_SetByteArrayLength(objPtr, length)

ARGUMENTS
       const unsigned char *bytes (in)              The array of bytes used to initialize or  set
                                                    a byte-array object.

       int length (in)                              The length of the array of bytes.  It must be
                                                    >= 0.

       Tcl_Obj *objPtr (in/out)                     For Tcl_SetByteArrayObj, this points  to  the
                                                    object  to  be  converted to byte-array type.
                                                    For  Tcl_GetByteArrayFromObj   and   Tcl_Set-
                                                    ByteArrayLength,  this  points  to the object
                                                    from which to get the  byte-array  value;  if
                                                    objPtr does not already point to a byte-array
                                                    object, it will be converted to one.

       int *lengthPtr (out)                         If non-NULL, filled with the  length  of  the
                                                    array of bytes in the object.
_________________________________________________________________


DESCRIPTION
       These  procedures are used to create, modify, and read Tcl byte-array objects from C code.
       Byte-array objects are typically used to hold the results of binary IO operations or  data
       structures  created  with the binary command.  In Tcl, an array of bytes is not equivalent
       to a string.  Conceptually, a string is an array of Unicode characters, while a byte-array
       is an array of 8-bit quantities with no implicit meaning.  Accessor functions are provided
       to get the string representation of a byte-array or to convert an arbitrary  object  to  a
       byte-array.   Obtaining  the  string  representation  of  a  byte-array object (by calling
       Tcl_GetStringFromObj) produces a properly formed UTF-8 sequence with a one-to-one  mapping
       between  the  bytes  in the internal representation and the UTF-8 characters in the string
       representation.

       Tcl_NewByteArrayObj and Tcl_SetByteArrayObj will create a new object of byte-array type or
       modify  an  existing  object  to have a byte-array type.  Both of these procedures set the
       object's type to be byte-array and set the object's internal representation to a  copy  of
       the  array of bytes given by bytes. Tcl_NewByteArrayObj returns a pointer to a newly allo-
       cated object with a reference count of  zero.   Tcl_SetByteArrayObj  invalidates  any  old
       string representation and, if the object is not already a byte-array object, frees any old
       internal representation.

       Tcl_GetByteArrayFromObj converts a Tcl object to byte-array type and returns a pointer  to
       the  object's  new internal representation as an array of bytes.  The length of this array
       is stored in lengthPtr if lengthPtr is non-NULL.  The storage for the array  of  bytes  is
       owned by the object and should not be freed.  The contents of the array may be modified by
       the caller only if the object is not shared and the caller invalidates the  string  repre-
       sentation.

       Tcl_SetByteArrayLength  converts  the Tcl object to byte-array type and changes the length
       of the object's internal representation as an array of bytes.  If length is  greater  than
       the  space  currently allocated for the array, the array is reallocated to the new length;
       the newly allocated bytes at the end of the array have arbitrary  values.   If  length  is
       less  than  the space currently allocated for the array, the length of array is reduced to
       the new length.  The return value is a pointer to the object's new array of bytes.


SEE ALSO
       Tcl_GetStringFromObj, Tcl_NewObj, Tcl_IncrRefCount, Tcl_DecrRefCount


KEYWORDS
       object, byte array, utf, unicode, internationalization



Tcl                                            8.1                            Tcl_ByteArrayObj(3)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2024-04-19 20:21 @3.149.254.35 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0!Valid CSS!