我有一个 tcl 程序,我在其中打开了一个文件,如果不存在则创建用于写入。现在我在其中记录了一些 puts 语句以进行调试。现在在这个过程结束时,我关闭了文件。但是在中间我正在调用另一个 proc,我还需要在该 proc 中的这个打开的文件中写入一些东西。所以我想做这样的事情:
proc ::myproc {args} {
set fp [open "C:\\log.txt" w+];
puts $fp "Checkpoint 1";
set retVal [::myprocII];
puts $fp "Checkpoint 2";
close $fp;
return 1;
}
proc ::myprocII {} {
set fp [open "C:\\log.txt" w+];
puts $fp "Checkpoint 3";
close $fp;
return 1;
}
因此,当我在 myprocII 中打开同一个文件并记录数据并关闭它时,这不是导致错误或异常的原因。然后,即使在我关闭 myprocII 中的文件后,我仍在调用 proc myproc 中记录数据。我试图对此进行测试,但由于我是从批处理文件中运行它,所以在我弄清楚错误是什么之前窗口就关闭了。
所以我想知道这是否正确,或者如果不是,我如何继续将来自不同过程的数据附加到同一个日志文件中。