创建TCL C通道时使用Tcl_SetChannelOption函数
Using Tcl_SetChannelOption function when creating TCL C channel
我想实现我的 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"(在翻译的情况下)或 "none"(在翻译的情况下)
-缓冲)
我试图搜索并理解为什么将此参数传递给此函数,更重要的是,此标志和值的含义是什么,但找不到任何内容。
我需要解释为什么要使用这个功能以及如何使用它?
长话短说:
-translation
是关于如何处理行结束字符(因为它们在 Windows、Linux 和 MacOS 上可能有所不同)。
-buffering
是关于将数据放入通道的频率(因为太频繁地这样做可能成本很高,或者引入任何延迟可能会适得其反)。
所有这些选项都会影响在频道上进一步 reads/writes 执行的操作。
所以,不是谷歌搜索 Tcl_SetChannelOption
,你必须检查 man 选项本身(因为这两个不是唯一适用的选项)。例如:
https://www.tcl.tk/man/tcl8.4/TclCmd/fconfigure.htm
我想实现我的 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"(在翻译的情况下)或 "none"(在翻译的情况下) -缓冲)
我试图搜索并理解为什么将此参数传递给此函数,更重要的是,此标志和值的含义是什么,但找不到任何内容。
我需要解释为什么要使用这个功能以及如何使用它?
长话短说:
-translation
是关于如何处理行结束字符(因为它们在 Windows、Linux 和 MacOS 上可能有所不同)。-buffering
是关于将数据放入通道的频率(因为太频繁地这样做可能成本很高,或者引入任何延迟可能会适得其反)。
所有这些选项都会影响在频道上进一步 reads/writes 执行的操作。
所以,不是谷歌搜索 Tcl_SetChannelOption
,你必须检查 man 选项本身(因为这两个不是唯一适用的选项)。例如:
https://www.tcl.tk/man/tcl8.4/TclCmd/fconfigure.htm