⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setvar.3

📁 linux系统下的音频通信
💻 3
字号:
'\"'\" Copyright (c) 1989-1993 The Regents of the University of California.'\" Copyright (c) 1994-1997 Sun Microsystems, Inc.'\"'\" See the file "license.terms" for information on usage and redistribution'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.'\" '\" SCCS: @(#) SetVar.3 1.30 97/10/10 16:10:36'\" .so man.macros.TH Tcl_SetVar 3 7.4 Tcl "Tcl Library Procedures".BS.SH NAMETcl_SetVar, Tcl_SetVar2, Tcl_GetVar, Tcl_GetVar2, Tcl_UnsetVar, Tcl_UnsetVar2 \- manipulate Tcl variables.SH SYNOPSIS.nf\fB#include <tcl.h>\fR.spchar *\fBTcl_SetVar\fR(\fIinterp, varName, newValue, flags\fR).spchar *\fBTcl_SetVar2\fR(\fIinterp, name1, name2, newValue, flags\fR).spchar *\fBTcl_GetVar\fR(\fIinterp, varName, flags\fR).spchar *\fBTcl_GetVar2\fR(\fIinterp, name1, name2, flags\fR).spint\fBTcl_UnsetVar\fR(\fIinterp, varName, flags\fR).spint\fBTcl_UnsetVar2\fR(\fIinterp, name1, name2, flags\fR).SH ARGUMENTS.AS Tcl_Interp *newValue.AP Tcl_Interp *interp inInterpreter containing variable..AP char *varName inName of variable.May include a series of \fB::\fR namespace qualifiersto specify a variable in a particular namespace.May refer to a scalar variable or an element ofan array variable.If the name references an element of an array, then itmust be in writable memory:  Tcl will make temporary modifications to it while looking up the name..AP char *newValue inNew value for variable..AP int flags inOR-ed combination of bits providing additional information foroperation. See below for valid values..AP char *name1 inName of scalar variable, or name of array variable if \fIname2\fRis non-NULL.May include a series of \fB::\fR namespace qualifiersto specify a variable in a particular namespace..AP char *name2 inIf non-NULL, gives name of element within array and \fIname1\fRmust refer to an array variable..BE.SH DESCRIPTION.PPThese procedures may be used to create, modify, read, and deleteTcl variables from C code..PPNote that \fBTcl_GetVar\fR and \fBTcl_SetVar\fRhave been largely replaced by theobject-based procedures \fBTcl_ObjGetVar2\fR and \fBTcl_ObjSetVar2\fR.Those object-based procedures read, modify, and createa variable whose name is held in a Tcl object instead of a string.They also return a pointer to the objectwhich is the variable's value instead of returning a string.Operations on objects can be faster since objectshold an internal representation that can be manipulated more efficiently..PP\fBTcl_SetVar\fR and \fBTcl_SetVar2\fRwill create a new variable or modify an existing one.Both of these procedures set the given variable to the valuegiven by \fInewValue\fR, and they return a pointer to acopy of the variable's new value, which is stored in Tcl'svariable structure.Tcl keeps a private copy of the variable's value, so the callermay change \fInewValue\fR after these procedures return withoutaffecting the value of the variable.If an error occurs in setting the variable (e.g. an arrayvariable is referenced without giving an index into the array),they return NULL..PPThe name of the variable may be specified to\fBTcl_SetVar\fR and \fBTcl_SetVar2\fR in either of two ways.If \fBTcl_SetVar\fR is called, the variable name is given asa single string, \fIvarName\fR.If \fIvarName\fR contains an open parenthesis and ends with aclose parenthesis, then the value between the parentheses istreated as an index (which can have any string value) andthe characters before the first openparenthesis are treated as the name of an array variable.If \fIvarName\fR doesn't have parentheses as described above, thenthe entire string is treated as the name of a scalar variable.If \fBTcl_SetVar2\fR is called, then the array name and indexhave been separated by the caller into two separate strings,\fIname1\fR and \fIname2\fR respectively;  if \fIname2\fR iszero it means that a scalar variable is being referenced..PPThe \fIflags\fR argument may be used to specify any of severaloptions to the procedures.It consists of an OR-ed combination of the following bits.Note that the flag bit TCL_PARSE_PART1 is only meaningfulfor the procedures Tcl_SetVar2 and Tcl_GetVar2..TP\fBTCL_GLOBAL_ONLY\fRUnder normal circumstances the procedures look up variables as follows:If a procedure call is active in \fIinterp\fR,a variable is looked up at the current level of procedure call.Otherwise, a variable is looked up first in the current namespace,then in the global namespace.However, if this bit is set in \fIflags\fR then the variableis looked up only in the global namespaceeven if there is a procedure call active.If both \fBTCL_GLOBAL_ONLY\fR and \fBTCL_NAMESPACE_ONLY\fR are given,\fBTCL_GLOBAL_ONLY\fR is ignored..TP\fBTCL_NAMESPACE_ONLY\fRUnder normal circumstances the procedures look up variables as follows:If a procedure call is active in \fIinterp\fR,a variable is looked up at the current level of procedure call.Otherwise, a variable is looked up first in the current namespace,then in the global namespace.However, if this bit is set in \fIflags\fR then the variableis looked up only in the current namespaceeven if there is a procedure call active..TP\fBTCL_LEAVE_ERR_MSG\fRIf an error is returned and this bit is set in \fIflags\fR, thenan error message will be left in the interpreter's result,where it can be retrieved with \fBTcl_GetObjResult\fRor \fBTcl_GetStringResult\fR.If this flag bit isn't set then no error message is leftand the interpreter's result will not be modified..TP\fBTCL_APPEND_VALUE\fRIf this bit is set then \fInewValue\fR is appended to the currentvalue, instead of replacing it.If the variable is currently undefined, then this bit is ignored..TP\fBTCL_LIST_ELEMENT\fRIf this bit is set, then \fInewValue\fR is converted to a validTcl list element before setting (or appending to) the variable.A separator space is appended before the new list element unlessthe list element is going to be the first element in a list orsublist (i.e. the variable's current value is empty, or containsthe single character ``{'', or ends in `` }'')..TP\fBTCL_PARSE_PART1\fRIf this bit is set when calling \fITcl_SetVar2\fR and \fITcl_GetVar2\fR,\fIname1\fR may contain both an array and an element name:if the name contains an open parenthesis and ends with aclose parenthesis, then the value between the parentheses istreated as an element name (which can have any string value) andthe characters before the first openparenthesis are treated as the name of an array variable.If the flag TCL_PARSE_PART1 is given,\fIname2\fR should be NULL since the array and element namesare taken from \fIname1\fR..PP\fBTcl_GetVar\fR and \fBTcl_GetVar2\fRreturn the current value of a variable.The arguments to these procedures are treated in the same wayas the arguments to \fBTcl_SetVar\fR and \fBTcl_SetVar2\fR.Under normal circumstances, the return value is a pointerto the variable's value (which is stored in Tcl's variablestructure and will not change before the next call to \fBTcl_SetVar\fRor \fBTcl_SetVar2\fR).\fBTcl_GetVar\fR and \fBTcl_GetVar2\fR use the flag bits TCL_GLOBAL_ONLYand TCL_LEAVE_ERR_MSG, both ofwhich havethe same meaning as for \fBTcl_SetVar\fR.In addition, \fBTcl_GetVar2\fR uses the bit TCL_PARSE_PART1,which has the same meaning as for \fBTcl_SetVar2\fR.If an error occurs in reading the variable (e.g. the variabledoesn't exist or an array element is specified for a scalarvariable), then NULL is returned..PP\fBTcl_UnsetVar\fR and \fBTcl_UnsetVar2\fR may be used to removea variable, so that future calls to \fBTcl_GetVar\fR or \fBTcl_GetVar2\fRfor the variable will return an error.The arguments to these procedures are treated in the same wayas the arguments to \fBTcl_GetVar\fR and \fBTcl_GetVar2\fR.If the variable is successfully removed then TCL_OK is returned.If the variable cannot be removed because it doesn't exist thenTCL_ERROR is returned.If an array element is specified, the given element is removedbut the array remains.If an array name is specified without an index, then the entirearray is removed..SH "SEE ALSO"Tcl_GetObjResult, Tcl_GetStringResult, Tcl_ObjGetVar2, Tcl_ObjSetVar2, Tcl_TraceVar.SH KEYWORDSarray, interpreter, object, scalar, set, unset, variable

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -