繁体   English   中英

将Tcl转换为C ++

[英]Converting Tcl to C++

我正在尝试将一些tcl脚本转换为C ++程序。 我在tcl方面没有太多经验,希望有人可以解释一下tcl脚本中实际上在进行以下操作:

    1) set rtn [true_test_sfm $run_dir]
    2) cd [glob $run_dir]
    3) set pwd [pwd]

第一个只是检查run_dir中是否存在true_test_sfm目录吗?

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

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

glob是一个内置的Tcl函数,该函数将文件模式作为参数,然后列出与该模式匹配的文件。 例如,如果目录包含文件“ foo”,“ bar”和“ baz”,则glob b*将返回两个文件“ bar”和“ baz”的列表。 因此,第二行将查找与$run_dir给定的模式匹配的所有文件,然后使用cd命令(另一个内置的Tcl)更改为glob找到的目录。 $run_dir可能实际上不是文件模式,而是一个明确的文件名(即,字符串中没有*或?之类的$run_dir ),否则此代码可能会意外中断。 在Windows上,可以将C ++中的FindFirstFile / FindNextFile某种组合用作Tcl中glob的替代,而SetCurrentDirectory可以替代cd

pwd是另一个内置的Tcl函数,该函数返回进程当前的工作目录作为绝对路径。 因此,最后一行是查询当前工作目录,并将结果保存在名为pwd的变量中。 在这里,您可以使用GetCurrentDirectory代替pwd

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM