如何检查 TCL 的标准输入缓冲区是否为空?

2024-05-12

With fconfigure http://www.tcl.tk/man/tcl8.6/TclCmd/fconfigure.htm您可以获取和设置频道选项。-buffering指定缓冲类型,默认为line for stdin.

有没有办法检查缓冲区是否位于stdin是空还是不空?


请看这个问题:如何检查 TCL 中的 stdin 是否处于待处理状态? https://stackoverflow.com/questions/8755031/how-to-check-if-stdin-is-pending-in-tcl


显然,您可以将通道模式设置为非阻塞并从中读取。如果读取返回 0 长度,则没有任何内容可用。但是,我怀疑您的意思是测试存在的数据,但不是完整的行,因为您提到了行缓冲。 fblocked 命令为此测试通道。看受阻(1) http://www.tcl.tk/man/tcl8.4/TclCmd/fblocked.htm对于详细信息,但对于行缓冲通道,这可以让您知道存在不完整的行。

如果您正在阅读交互式脚本命令,则阅读 stdin 时另一个有用的命令是使用 infocomplete 命令。这样,您就可以累积行,直到 infocomplete 返回 true,然后对整个缓冲区进行评估。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查 TCL 的标准输入缓冲区是否为空? 的相关文章

  • 获取网页时,如何在 Ruby 中捕获“处理过程中的错误:缓冲区错误”?

    我正在使用 Rails 4 2 7 和此代码通过 SOCKS 代理获取网页 begin res1 Net HTTP SOCKSProxy 127 0 0 1 50001 start uri host uri port do http put
  • 如何在tcl中搜索数字即进程ID并杀死进程ID

    我尝试搜索存储在变量 say 缓冲区中的进程 id i e 6762 nohup tcpdump ni eth0 s0 2 gt 1 null 1 6762 You have new mail in var mail root 如果匹配的话
  • 将 STDIN 拆分为多个文件(如果可能的话压缩它们)

    我有一个程序 gawk 将数据流输出到它的STDOUT 处理的数据实际上有 10 GB 我不想将其保留在单个文件中 而是将其分成多个块 并可能在保存之前对每个文件应用一些额外的处理 如压缩 我的数据是一系列记录 我不想拆分将记录减半 每条记
  • Powershell Clear-Host 保留缓冲区的替代方案

    我想要像 Clear Host 这样的东西 但想要回滚 到目前为止 我所做的基本上就是添加换行符 直到屏幕清晰为止 尽管当我这样做时 光标开始在页面底部书写 正如预期的那样 尽管不是期望的 我希望从页面顶部开始书写 对于菜单等 这是很自然的
  • kivy:可以使用缓冲区作为图像源吗?

    我有如下代码 它可以从一些现有图像中生成新图像 from PIL import Image as pyImage def create compound image back image path fore image path fore
  • BufferedWriter在java中如何工作

    我经常将文本输出到文件中 我想知道一件事 怎么办BufferedWriterwork 当我打电话时它会在文件中写入文本吗writer write text 如果不写文本 我需要使用flush函数来写数据吗 例如 File file new
  • 带可选参数的 TCL 过程调用

    存在一个 TCL 脚本 该脚本具有多个名称相似的过程定义func在不同的命名空间中 程序如下 proc func a puts a 所有这类程序都只有一个参数a 所有此类过程都是从整个脚本中的一行调用的 func a 我需要创建另一个具有相
  • 从 stdin、C 读取未知行数

    我在读取未知大小的标准输入时遇到问题 事实上 它是 txt 文件中的一个表 我通过调用参数 include
  • Node.js 中的缓冲区是什么?

    正如您可以在有关 Buffer 类的 Node js 文档 http nodejs org api buffer html 一个缓冲区 类似于整数数组 但对应于 V8 堆外部的原始内存分配 到目前为止 一切都很好 现在让我困惑的是 从技术上
  • 如何像用户打字一样将输入发送到控制台?

    这是我的问题 我有一个程序必须在 TTY 中运行 cygwin 提供了这个 TTY 当我重定向 stdIn 时 程序失败 因为它没有 TTY 我无法修改该程序 并且需要某种方法使其自动化 如何抓取 cmd exe 窗口并向其发送数据并使其认
  • 如何通过pthreads管理两个或多个消费者?

    我有一个正在寻求解决的通用问题 即从标准输入或常规文件流发送到应用程序的二进制数据块 应用程序又将二进制数据转换为文本 使用线程 我想在将文本传输到下一个应用程序之前对其进行处理 该应用程序会进一步修改该文本 依此类推 作为一个简单的测试用
  • 正则表达式文字-文本范围

    有什么方法可以向正则表达式指示要显式搜索的文本块吗 我问这个问题是因为我必须匹配一段非常非常长的文本 其中包含各种元字符 并且 并且必须完全匹配 然后是一些灵活的内容 足以值得使用正则表达式 然后是更多文本必须完全匹配 冲洗 重复 不用说
  • 如何在 {expect} 脚本中创建“循环”语句?

    假设是 这是脚本 usr bin expect set a test 我想在这个脚本中创建一个循环 以便它可以打印值 a 前面有一个基于循环的数字 所以如果我想让它循环3次 最终产品将变成 1 test 2 test 3 test 您可以使
  • C++套接字256字节缓冲区

    我正在尝试在 C 中使用一些套接字网络编程 我正在尝试发送文本 Hello World 使用 C send 函数发送到服务器 首先 我将缓冲区的大小设置为 13 因为 Hello World 总共是 12 个字符 必须比字符数多 1 个 如
  • 如何增加ofstream的缓冲区大小

    我想增加 C 程序的缓冲区大小 以便它不会过于频繁地写入 默认缓冲区是 8192 字节 我尝试使用 pubsetbuf 将其增加到 200K 原始代码 ofstream fq fastq1 cstr ios out fastq1 is a
  • 从标准输入读取字符串长度[重复]

    这个问题在这里已经有答案了 我想从标准输入获取一个字符串 但我不想要固定大小的静态数组 我知道 scanf 需要保存标准输入的东西 但我不能做这样的事情 char string 10 scanf s string 因为我需要先知道字符串有多
  • 围绕 readline 构建的 python 批处理的触发器选项卡完成

    背景 我有一个 python 程序 它导入并使用 readline 模块来构建自制的命令行界面 我有第二个 python 程序 围绕 Bottle 一个 Web 微框架构建 充当该 CLI 的前端 第二个 python 程序向第一个程序打开
  • 为什么 char name[1] 可以容纳超过 1 个字符? [复制]

    这个问题在这里已经有答案了 当我遇到这种情况时 我正在对一个主题进行一些研究 假设有以下 C 代码 include
  • 如何停止使用扫描仪从标准输入读取多行?

    我正在做一个 JAVA 作业 应该处理多行输入 指令显示 输入是从标准输入读取的 给出了示例输入的示例 one 1 two 2 three 3 我不明白上面的示例输入 从标准输入读取 是什么意思 这是我编写的一个测试程序 它可以消除我的困惑
  • 在退出脚本之前等待后台进程完成

    在退出脚本 TCL Bash 之前 如何确保所有后台进程已完成执行 我正在考虑将所有后台进程 pid 写入 pid 文件 然后最后 pgrep pidfile 以查看在退出之前是否有任何进程仍在运行 有一些更简单的方法可以做到这一点吗 TC

随机推荐