如何检查stdin / stdout是否连接到tcl

时间:2017-04-27 14:25:38

标签: tcl stdout stdin

我希望我的脚本能够以交互方式和cron运行。在后一种情况下,如果没有初始化某些env变量并且没有提示用户输入它们,它应该只记录并退出。在C中我会通过_isatty(_fileno(stdin))检查它,但是如何在tcl中执行此操作? tcl wiki建议使用set interactive [ expr ! [ catch { exec /bin/sh -c { [ -t 0 ] }}]],但由于显而易见的原因,这不会在Windows上运行。

[dict exists [fconfigure stdin] -mode]也不起作用,这是我从终端-blocking 1 -buffering line -buffersize 4096 -encoding cp1251 -eofchar -translation auto

获得的内容

1 个答案:

答案 0 :(得分:1)

我有坏消息。我检查了代码和Windows控制台通道类型处理程序doesn't declare any custom options(与非Windows不同,其中控制台是串行通道,因此提供-mode和其他选项)。因此,无法进行检测。