c++ - 调用 `source`命令时如何传递参数

标签 c++ arguments tcl

我需要从 C++ 程序运行 source 命令并传递文件名和一些参数。是否可以?我想在脚本中使用它们,例如命令行参数(使用 argc, argv0, ...)。 http://www.astro.princeton.edu/~rhl/Tcl-Tk_docs/tcl/source.n.html这里没有具体说明如何去做。

最佳答案

从 C 或 C++ 执行此操作时,您应该:

  1. 初始化 Tcl 库并创建 Tcl 解释器。
  2. 将全局变量 argv0argvargc 设置为普通 Tcl 脚本所期望的值。这正是 tclsh 所做的;除了以这种方式初始化之外,变量完全是普通的。
    • argv0 是“主”脚本的名称,它可能是您将要源代码 的脚本。
    • argv 是所有其他参数的 Tcl 列表; argc 是该列表的长度。
  3. 使用Tcl_FSEvalFileEx(interp,pathPtr,encoding)执行文件; source 命令是该调用的一个非常薄的包装器。您可能希望将 encoding 参数作为 NULL 传递,而 pathPtr 参数是一个 Tcl_Obj 引用。<

关于c++ - 调用 `source`命令时如何传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18052234/

相关文章:

C++ 可执行文件在运行时找不到库,即使它位于/usr/lib(在 Linux 上)

c++ - header 包含顺序困惑

c++ - 设计线程安全的可复制类

objective-c - 我可以传递给方法的参数数量是否有限制?

regex - Tcl 正则表达式匹配所有小写的字符串

time - 如何以毫秒获取当前时间

c++ - 如何在 jsoncpp 中使用 decodeString 解码包含 unicode 字符的字符串

c++ - 将 int[] 传递给带有参数 int * 的函数

linux - bash:如何传递包含空格的参数

string - 检查Tcl中字符串是否包含片段