【问题标题】:In TCL, is it possible to read and edit a file, when file is under continuous write operation在 TCL 中,当文件处于连续写入操作时,是否可以读取和编辑文件
【发布时间】:2019-12-12 14:09:26
【问题描述】:

下面是如何将数据写入文件的代码。

set fid [open "file.txt" w]
fconfigure $fid -buffering line

文件处于连续写操作中,我想知道有没有什么方法可以读取这个文件并修改内容,而不用关闭fileID,即“fid”。

【问题讨论】:

  • “并修改内容”---安全吗?

标签: tcl


【解决方案1】:

opena(“追加”)模式不允许您阅读,但您可以打开一个指向同一文件的单独通道,然后您将看到实际写入该文件的所有内容。 (使用 -buffering 配置,这意味着末尾的任何部分行都将不可见。)

或者,您可以使用a+ 模式,然后您将能够seek 并从文件中读取内容。写入仍然会到文件末尾(并且,出于技术原因,附加保证稍微放宽,因此它仅适用于从 Tcl 完成的写入,而不适用于继承通道句柄的子进程)。

真正修改文件末尾以外的位置的唯一方法是使用完全不同的模式单独打开它,例如w+。显然,您需要非常小心!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2015-06-26
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多