将Tcl转换为C++; 我试图把一些TCL脚本转换成C++程序。我对tcl没有太多的经验,我希望有人能解释一下在tcl脚本中下面的一些事情实际上在做什么: 1) set rtn [true_test_sfm $run_dir] 2) cd [glob $run_dir] 3) set pwd [pwd]

将Tcl转换为C++; 我试图把一些TCL脚本转换成C++程序。我对tcl没有太多的经验,我希望有人能解释一下在tcl脚本中下面的一些事情实际上在做什么: 1) set rtn [true_test_sfm $run_dir] 2) cd [glob $run_dir] 3) set pwd [pwd],tcl,Tcl,第一个只是检查run dir中是否存在true_utest\u sfm目录 另外,我正在windows机器上编程。系统功能是否等同于tcl中的exec语句?如果是这样,我将如何打印系统函数调用stdout的结果?在Tcl中,方括号表示“在方括号之间计算代码”。该计算的结果将替换整个方括号内的表达式。因此,第一行使用单个参数$run\u dir调用函数true\u test\u sfm;然后将该函数调用的结果分配给变量rtn。不幸的是,true_utest\u sfm不是内置的Tcl函数,这意味着

第一个只是检查run dir中是否存在true_utest\u sfm目录


另外,我正在windows机器上编程。系统功能是否等同于tcl中的exec语句?如果是这样,我将如何打印系统函数调用stdout的结果?

在Tcl中,方括号表示“在方括号之间计算代码”。该计算的结果将替换整个方括号内的表达式。因此,第一行使用单个参数
$run\u dir
调用函数
true\u test\u sfm
;然后将该函数调用的结果分配给变量
rtn
。不幸的是,
true_utest\u sfm
不是内置的Tcl函数,这意味着它是用户定义的,这意味着我们无法根据您在这里提供的信息来告诉您该函数调用的效果

glob
是一个内置的Tcl函数,它将文件模式作为参数,然后列出与该模式匹配的文件。例如,如果目录包含文件“foo”、“bar”和“baz”,
glob*
将返回两个文件的列表,“bar”和“baz”。因此,第二行查找与
$run\u dir
给出的模式匹配的任何文件,然后使用
cd
命令(另一个Tcl内置)更改为
glob
找到的目录。可能
$run\u dir
实际上不是一个文件模式,而是一个明确的文件名(即字符串中没有*或?之类的全局字符),否则此代码可能会意外中断。在Windows上,C++中的代码> > FINFIDSTSTORION/COD> >代码> FINDXFROUP < /COD>可以作为TCL中的代码> GOLB的替代,而 SturrCurrestOrths>/Cord>可以替代<代码> CD
pwd
是另一个内置的Tcl函数,它将进程当前工作目录作为绝对路径返回。最后一行是查询当前工作目录,并将结果保存在名为
pwd
的变量中。在这里,您可以使用
GetCurrentDirectory
替代Tcl中的
pwd

的方括号表示“评估方括号之间的代码”。该计算的结果将替换整个方括号内的表达式。因此,第一行使用单个参数
$run\u dir
调用函数
true\u test\u sfm
;然后将该函数调用的结果分配给变量
rtn
。不幸的是,
true\u test\u sfm
不是内置的Tcl函数,这意味着它是用户定义的,这意味着我们无法根据您在此处提供的信息告诉您该函数调用的效果

glob
是一个内置的Tcl函数,它将文件模式作为参数,然后列出与该模式匹配的文件。例如,如果目录包含文件“foo”、“bar”和“baz”,
glob*
将返回两个文件的列表,“bar”和“baz”。因此,第二行查找与
$run\u dir
给出的模式匹配的任何文件,然后使用
cd
命令(另一个Tcl内置)更改为
glob
找到的目录。可能
$run\u dir
实际上不是一个文件模式,而是一个明确的文件名(即字符串中没有*或?之类的全局字符),否则此代码可能会意外中断。在Windows上,C++中的代码> > FINFIDSTSTORION/COD> >代码> FINDXFROUP < /COD>可以作为TCL中的代码> GOLB的替代,而 SturrCurrestOrths>/Cord>可以替代<代码> CD
pwd
是另一个内置的Tcl函数,它将进程当前工作目录作为绝对路径返回。最后一行是查询当前工作目录,并将结果保存在名为
pwd
的变量中。在这里,您可以使用
GetCurrentDirectory
来替代
pwd
glob
的序列是人们在Tcl实现
文件规范化之前经常使用的一种可怕的东西。当文件名/dir中有空格时,使用
glob
cd
的风格就彻底崩溃了;引用的清单将几乎保证所发生的事情不是任何人想要的。在TCL8.5以上版本中,
cd{*}[glob…]
在失败时至少不会那么疯狂。(在脚本中不建议使用globbing来获取这类东西的目录名,而且它在交互使用中非常懒惰。)在Tcl实现
文件规范化之前,人们经常使用带有
glob
的序列。当文件名/dir中有空格时,使用
glob
cd
的风格就彻底崩溃了;引用的清单将几乎保证所发生的事情不是任何人想要的。在TCL8.5以上版本中,
cd{*}[glob…]
在失败时至少不会那么疯狂。(在脚本中不建议使用globbing来获取此类内容的目录名,而且它在交互使用中非常懒惰。)