Tcl_NewIntObj, Tcl_NewLongObj, Tcl_NewWideIntObj, Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, Tcl_GetIntFromObj, Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_NewBignumObj, Tcl_SetBignumObj, Tcl_GetBignumFromObj, Tcl_TakeBignumFromObj − manipulate Tcl objects as integer values


#include <tcl.h>

Tcl_Obj *

Tcl_Obj *

Tcl_Obj *

Tcl_SetIntObj(objPtr, intValue)

Tcl_SetLongObj(objPtr, longValue)

Tcl_SetWideIntObj(objPtr, wideValue)

(interp, objPtr, intPtr)

(interp, objPtr, longPtr)

(interp, objPtr, widePtr)

#include <tclTomMath.h>

Tcl_Obj * │
(bigValue) │

Tcl_SetBignumObj(objPtr, bigValue) │

int │
(interp, objPtr, bigValue) │

int │
(interp, objPtr, bigValue) │

int │
(interp, doubleValue, bigValue) │


int intValue (in)

Integer value used to initialize or set a Tcl object.

long longValue (in)

Long integer value used to initialize or set a Tcl object.

Tcl_WideInt wideValue (in)

Wide integer value used to initialize or set a Tcl object.

Tcl_Obj *objPtr (in/out)

For Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, and Tcl_SetBignumObj, this points to the object in which to store an integral value. For Tcl_GetIntFromObj, Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_GetBignumFromObj, and Tcl_TakeBignumFromObj, this refers to the object from which to retrieve an integral value.

Tcl_Interp *interp (in/out)

When non-NULL, an error message is left here when integral value retrieval fails.

int *intPtr (out)

Points to place to store the integer value retrieved from objPtr.

long *longPtr (out)

Points to place to store the long integer value retrieved from objPtr.

Tcl_WideInt *widePtr (out)

Points to place to store the wide integer value retrieved from objPtr.

mp_int *bigValue (in/out)

Points to a multi-precision │ integer structure declared by the │ LibTomMath library.

double doubleValue (in)

Double value from which the │ integer part is determined and │ used to initialize a │ multi-precision integer value.



These procedures are used to create, modify, and read Tcl objects that │ hold integral values. │

The different routines exist to accommodate different integral types in │ C with which values might be exchanged. The C integral types for which │ Tcl provides value exchange routines are int, long int, Tcl_WideInt, │ and mp_int. The int and long int types are provided by the C language │ standard. The Tcl_WideInt type is a typedef defined to be whatever │ signed integral type covers at least the 64-bit integer range │ (-9223372036854775808 to 9223372036854775807). Depending on the │ platform and the C compiler, the actual type might be long int, longlong int, int64, or something else. The mp_int type is a │ multiple-precision integer type defined by the LibTomMath │ multiple-precision integer library. │

The Tcl_NewIntObj, Tcl_NewLongObj, Tcl_NewWideIntObj, and │ Tcl_NewBignumObj routines each create and return a new Tcl object │ initialized to the integral value of the argument. The returned Tcl │ object is unshared. │

The Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, and │ Tcl_SetBignumObj routines each set the value of an existing Tcl object │ pointed to by objPtr to the integral value provided by the other │ argument. The objPtr argument must point to an unshared Tcl object. │ Any attempt to set the value of a shared Tcl object violates Tcl’s │ copy-on-write policy. Any existing string representation or internal │ representation in the unshared Tcl object will be freed as a │ consequence of setting the new value. │

The Tcl_GetIntFromObj, Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, │ Tcl_GetBignumFromObj, and Tcl_TakeBignumFromObj routines attempt to │ retrieve an integral value of the appropriate type from the Tcl object │ objPtr. If the attempt succeeds, then TCL_OK is returned, and the │ value is written to the storage provided by the caller. The attempt │ might fail if objPtr does not hold an integral value, or if the value │ exceeds the range of the target type. If the attempt fails, then │ TCL_ERROR is returned, and if interp is non-NULL, an error message is │ left in interp. The Tcl_ObjType of objPtr may be changed to make │ subsequent calls to the same routine more efficient. Unlike the other │ functions, Tcl_TakeBignumFromObj may set the content of the Tcl object │ objPtr to an empty string in the process of retrieving the │ multiple-precision integer value. │

The choice between Tcl_GetBignumFromObj and Tcl_TakeBignumFromObj is │ governed by how the caller will continue to use objPtr. If after the │ mp_int value is retrieved from objPtr, the caller will make no more use │ of objPtr, then using Tcl_TakeBignumFromObj permits Tcl to detect when │ an unshared objPtr permits the value to be moved instead of copied, │ which should be more efficient. If anything later in the caller │ requires objPtr to continue to hold the same value, then │ Tcl_GetBignumFromObj must be chosen. │

The Tcl_InitBignumFromDouble routine is a utility procedure that │ extracts the integer part of doubleValue and stores that integer value │ in the mp_int value bigValue.


Tcl_NewObj, Tcl_DecrRefCount, Tcl_IncrRefCount, Tcl_GetObjResult


integer, integer object, integer type, internal representation, object, object type, string representation

More Linux Commands

ip-tunnel(8) tunnel configuration - Linux manual page.......
tunnel objects are tunnels, encapsulating packets in IP packets and then sending them over the IP infrastructure. The encapsulating (or outer) address family is

XtGetKeyboardFocusWidget(3) - extension event handling......
XtGetKeyboardFocusWidget function returns the widget that would be the end result of keyboard event forwarding for a keyboard event for the specified widget. SE

fontchooser(n) control font selection dialog (Man Page).....
The tk fontchooser command controls the Tk font selection dialog. It uses the native platform font selection dialog where available, or a dialog implemented in

keyctl_invalidate(3) Invalidate a key - Linux manual page...
keyctl_invalidate() invalidates a key. The key is scheduled for immediate removal from all the keyrings that point to it, after which it will be deleted. The ke

gnutls_rsa_params_export_raw(3) - API function (Man Page)...
This function will export the RSA parameters found in the given structure. The new parameters will be allocated using gnutls_malloc() and will be stored in the

ctanl(3) - complex tangent function - Linux manual page.....
The complex tangent function is defined as: ctan(z) = csin(z) / ccos(z) VERSIONS These functions first appeared in glibc in version 2.1. CONFORMING TO C99. SEE

swab(3) - swap adjacent bytes (Library - Linux man page)....
The swab() function copies n bytes from the array pointed to by from to the array pointed to by to, exchanging adjacent even and odd bytes. This function is use

use_legacy_coding_sp(3ncurses) - curses screen-pointer exten
This implementation can be configured to provide a set of functions which improve the ability to manage multiple screens. This feature can be added to any of th

XLookupColor(3) - obtain color values - Linux manual page...
The XQueryColor function returns the current RGB value for the pixel in the XColor structure and sets the DoRed, DoGreen, and DoBlue flags. The XQueryColors fun

pam_tally(8) - The login counter (tallying) module (ManPage)
This module maintains a count of attempted accesses, can reset count on success, can deny access if too many attempts fail. pam_tally has several limitations, w

Tcl_DStringAppendElement(3) - manipulate dynamic strings....
Dynamic strings provide a mechanism for building up arbitrarily long strings by gradually appending information. If the dynamic string is short then there will

ioperm(2) - set port input/output permissions (Man Page)....
ioperm() sets the port access permission bits for the calling thread for num bits starting from port address from. If turn_on is nonzero, then permission for th

We can't live, work or learn in freedom unless the software we use is free.