我需要从 C++ 程序运行 source
命令并传递文件名和一些参数。是否可以?我想在脚本中使用它们,例如命令行参数(使用 argc, argv0, ...
)。 http://www.astro.princeton.edu/~rhl/Tcl-Tk_docs/tcl/source.n.html这里没有具体说明如何去做。
最佳答案
从 C 或 C++ 执行此操作时,您应该:
- 初始化 Tcl 库并创建 Tcl 解释器。
- 将全局变量
argv0
、argv
和argc
设置为普通 Tcl 脚本所期望的值。这正是 tclsh 所做的;除了以这种方式初始化之外,变量完全是普通的。argv0
是“主”脚本的名称,它可能是您将要源代码
的脚本。argv
是所有其他参数的 Tcl 列表;argc
是该列表的长度。
- 使用
Tcl_FSEvalFileEx(interp,pathPtr,encoding)
执行文件;source
命令是该调用的一个非常薄的包装器。您可能希望将 encoding 参数作为NULL
传递,而 pathPtr 参数是一个Tcl_Obj
引用。<
关于c++ - 调用 `source`命令时如何传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18052234/