Tcl_NewByteArrayObj man page on OpenMandriva

Man page or keyword search:  
man Server   8135 pages
apropos Keyword Search (all sections)
Output format
OpenMandriva logo
[printable version]

Tcl_ByteArrayObj(3)	    Tcl Library Procedures	   Tcl_ByteArrayObj(3)

______________________________________________________________________________

NAME
       Tcl_NewByteArrayObj,    Tcl_SetByteArrayObj,   Tcl_GetByteArrayFromObj,
       Tcl_SetByteArrayLength - manipulate Tcl values 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 value. May  be  NULL
						    even  if  length  is  non-
						    zero.

       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	 value
						    to	be  converted to byte-
						    array type.	 For  Tcl_Get‐
						    ByteArrayFromObj	   and
						    Tcl_SetByteArrayLength,
						    this  points  to the value
						    from  which	 to  get   the
						    byte-array	  value;    if
						    objPtr  does  not  already
						    point   to	 a  byte-array
						    value,  it	will  be  con‐
						    verted to one.

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

DESCRIPTION
       These  procedures  are  used to create, modify, and read Tcl byte-array
       values from C code.  Byte-array values 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 representa‐
       tion of a byte-array or to convert an arbitrary value to a  byte-array.
       Obtaining  the  string representation of a byte-array value (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 value  of
       byte-array  type or modify an existing value to have a byte-array type.
       Both of these procedures set the value's type to be byte-array and  set
       the  value's  internal  representation  to a copy of the array of bytes
       given by bytes. Tcl_NewByteArrayObj returns a pointer to a newly	 allo‐
       cated value with a reference count of zero.  Tcl_SetByteArrayObj inval‐
       idates any old string representation and, if the value is not already a
       byte-array  value,  frees  any old internal representation. If bytes is
       NULL then the new byte array contains arbitrary values.

       Tcl_GetByteArrayFromObj converts a Tcl value  to	 byte-array  type  and
       returns	a  pointer  to	the  value'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 value and should not be freed.  The contents of the	array  may  be
       modified	 by  the caller only if the value is not shared and the caller
       invalidates the string representation.

       Tcl_SetByteArrayLength converts the Tcl value to	 byte-array  type  and
       changes	the  length of the value'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 allo‐
       cated 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 value's new array of bytes.

SEE ALSO
       Tcl_GetStringFromObj, Tcl_NewObj, Tcl_IncrRefCount, Tcl_DecrRefCount

KEYWORDS
       value, binary data, byte array, utf, unicode, internationalization

Tcl				      8.1		   Tcl_ByteArrayObj(3)
[top]

List of man pages available for OpenMandriva

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net