Unix/Linux Go Back    


OpenDarwin 7.2.1 - man page for tcl_setbytearrayobj (opendarwin section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


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_Get-
					      ByteArrayFromObj	and  Tcl_SetByteArrayLength, 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.  Accesser 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)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 07:23 AM.