【问题标题】:Using Tcl_SetChannelOption function when creating TCL C channel创建 TCL C 通道时使用 Tcl_SetChannelOption 函数
【发布时间】:2018-11-22 22:00:05
【问题描述】:

我想实现我的 Tcl_Channel,它将在 Tcl 和 C 之间进行通信。 我看到使用 Tcl_CreateChannel(...) 创建频道后,使用了

Tcl_SetChannelOption(Tcl_Interp *interp, Tcl_Channel chan, cons char *optionName, const char *newValue);  

TCL-C API 函数,此外,我看到几乎总是传递给该函数的内容如下:

  • 参数 1:NULL

  • 参数 2:客户端数据

  • 参数 3:“-translation”或“-buffering”

  • 参数 4:“lf”(在 -translation 的情况下)或“none”(在 -缓冲)

我试图搜索并理解为什么将这个参数传递给这个函数,更重要的是,这个标志和值的含义是什么但找不到任何东西。
我需要解释为什么要使用这个功能以及如何使用它?

【问题讨论】:

  • 函数是fconfigure前面的C API。

标签: c tcl channel


【解决方案1】:

长话短说:

  • -translation 是关于如何处理行尾字符(因为它们在 Windows、Linux 和 MacOS 上会有所不同)。
  • -buffering 是关于多久将数据放入通道的频率(因为过于频繁地这样做可能成本高昂,或者引入任何延迟可能会适得其反)。

所有这些选项都会对通道上执行的进一步读/写产生影响。 因此,您不必在谷歌上搜索Tcl_SetChannelOption,而必须检查选项本身(因为这两个不是唯一适用的选项)。例如: https://www.tcl.tk/man/tcl8.4/TclCmd/fconfigure.htm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    相关资源
    最近更新 更多