在不读取IO的情况下如何知道IO是否为空?

2023-11-30

我有一个IO对象(如$stdout, $stderr)。我可以read.empty?看看它是否为空,但是不读它是否可以知道它是否为空呢?我知道File has size, but IO才不是。

Edit抱歉,如果我的问题不够清楚。我将这些对象作为返回值Open3.popen3。例如,我想看看是否有任何内容写入了标准错误。如果可能的话,我想在不阅读它的情况下完成它。


这是一个目的IO::选择 method:

问题编辑后更新的示例:

require 'open3'

select_timeout = Rational(1,10) # optional

Open3.popen3('ls /') do
  |stdin, stdout, stderr, w_thread|

  rdin, rdout, rderr = IO.select([stdin], [stdout], [stderr], select_timeout)
  if rdin
    p 'no data on standard input' unless rdin.member? stdin
    p 'no data on standard output' unless rdout.member? stdout
    p 'no data on standard error' unless rderr.member? stderr
  else
    p 'none of streams has data available'
  end

  retval = w_thread.value
end
# "no data on standard output"
# "no data on standard error"

而只有标准输入包含来自生成线程命令的数据ls /

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

在不读取IO的情况下如何知道IO是否为空? 的相关文章

  • Rails 中的代码片段应该放在哪里?

    我有这个代码片段 可以为 POST 生成签名 它的细节并不重要 但我想知道的是 由于它不是与模型相关的代码块 所以它确实可以在任何地方使用 在控制器中 在模型中 在视图助手中 即使在视图中 因此 我不确定在哪里 甚至更大的问题是 一旦将其放
  • 如何在 Ruby 2.0 中使用调试器?

    我知道调试器 gem 不会也永远不会与 ruby 2 0 per 兼容正式支持ruby 2 X https github com cldwalker debugger issues 47 issuecomment 44027702 Ruby
  • 设计涟漪

    我正在尝试使用以 riak 作为数据库的设备创建身份验证 我找到了同样的 ORM 策略https github com frank06 devise ripple https github com frank06 devise ripple
  • Ruby 元编程方法列表?

    刚刚开始学习 Ruby 元编程 看看 Object methods 我得到 Object methods gt allocate new superclass freeze lt gt lt lt gt gt to s included m
  • 随机化数组元素

    我有一个数组 number 1 2 3 4 5 6 7 8 9 现在 我想随机化数组内容 例如 5 3 2 6 7 1 8 请指导我如何继续 Use the shuffle方法 irb main 001 0 gt 1 2 3 4 5 shu
  • 有没有办法编写一个匹配除文件夹中的文件之外的所有文件的全局模式?

    我需要编写一个文件 glob 它将匹配除特定文件夹中包含的文件之外的所有文件 例如 除了高级文件夹中包含的文件之外的所有文件 foo 我已经到达以下区域 foo 然而 这个 glob 似乎与 Ruby 中的任何文件都不匹配File fnma
  • Accepts_nested_attributes_for Rails 3 中的实际形式使用

    使用 Ruby on Rails 3 我半明白accepts nested attributes for是如何的supposed工作 但我无法找出以某种形式实现这一点的实用方法 例如 如果有人想在其用户页面中添加他们最近的位置 user r
  • 安装了 Rails 但它说我没有:)

    我刚刚执行了这个命令来安装 Rails gem install rails 它似乎运行良好并安装了东西 然后当我按照本教程进行操作时 http guides rubyonrails org getting started html http
  • 直接或通过包含定义嵌套类

    假设我正在为我的家庭存储系统建模 我有很多不同类型的Container 而且我发现其中很多都有装饰品 因此我为这种常见情况设置了一些辅助代码 我的容器中有我的Mantlepiece and my Bookcase 我只在前者上存放装饰品 而
  • 在所有延迟的作业之前挂钩

    是否可以在所有delayed job任务之前运行一个方法 基本上 我们试图确保每台运行delayed job的服务器都有我们代码的最新实例 因此我们希望运行一个方法来在每个作业运行之前检查这一点 我们已经有了 check 方法并在其他地方使
  • mongoid 中的嵌入文档与哈希数据类型

    我找不到任何讨论此问题的博客文章或文档 它们 嵌入式文档和哈希数据类型 非常相似 彼此相比有何好处或限制 考虑我的架构设计 class HistoryTracker include Mongoid Document include Mong
  • 平衡付款 - 有关获取现有买家和商家账户参考信息的文档

    我如何获得已创建的买家和商家帐户的参考 我只是找到创建买家和商家帐户的示例 我没有找到任何有关获取该信息以供重用的示例 是否有关于此的现有文档或只是 rdoc 中的内容 根据对 rdoc 的引用 我假设您在这里使用 Ruby gem 使用唯
  • heroku 语言区域设置不工作 I18n::MissingTranslationData

    在我的本地电脑上一切正常 但在 heroku 上我收到错误 我的 Heroku 控制台 PC HOME PC c rails konkurranceportalen master heroku console Ruby console fo
  • 从 Rails Helper 返回多个标签的最佳方法是什么?

    我想创建一个隐藏字段并在一个助手中创建一个链接 然后将两者输出到我的 erb 应该输出结果 link to something a path form hidden field something tableize value gt som
  • 匹配一对未转义的平衡分隔符

    如何匹配一对不被反斜杠转义的平衡分隔符 本身不被反斜杠转义 无需考虑嵌套 例如 对于反引号 我尝试了此操作 但是转义的反引号无法按转义的方式工作 regex lt lt hello how are you gt 1 how expected
  • 如何告诉 Ruby 不要序列化属性或如何正确重载 marshal_dump?

    我的 AR B 中有一个不可序列化的属性 o Discussion find 6 Marshal dump o TypeError no marshal dump is defined for class Proc from irb 10
  • 在 Android 上生成 FileDescriptor 而不先打开文件

    在Android中 是否可以直接从字节数组生成FileDescriptor 而不必先打开文件 在 Android 2 2 中 我动态生成 MIDI 文件 然后使用 MediaPlayer 进行播放 我在下面包含了成功执行此操作的 Main
  • Rails 2.3.14:如何序列化 ActionController::Request 对象?

    我需要编写一些根据 Rails 2 3 14 控制器收到的请求对象类型执行操作的方法 但是 我不想启动整个应用程序 甚至不想启动控制器 我只想拥有这样一个对象的编组副本 以便我可以在 Rails 环境之外使用 不幸的是 ActionCont
  • 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么?

    我的工作要求我为某些测试自动生成电子邮件 我一直在四处寻找 但一直未能找到可以快速实施的合理解决方案 它需要在 Outlook 中 而不是其他邮件服务器中 因为我们有一些奇怪的身份验证规则 并且我们需要保存草稿的选项 而不仅仅是发送消息 显
  • 在Ruby中从csv文件中获取第二行[重复]

    这个问题在这里已经有答案了 actual row File open file name 0 r first row data CSV foreach actual row do row first row data lt lt row 1

随机推荐

  • 如何将密钥信息保留在 Git 存储库之外

    我的存储库中有一些文件 其中一个包含 Adafruit 秘密密钥 我想使用 Git 来存储我的存储库 但我不想发布密钥 保守秘密的最佳方法是什么 而不必每次提交和推动某件事时都将其清空 根据您想要实现的目标 您可以选择以下方法之一 将文件保
  • 使用 d3.js 在强制布局中添加和删除节点时出现问题

    我试图通过从 Zabbix API 获取数据来可视化服务器可用性 以及随后的其他事情 一旦可行 您可以在 Zabbix API 文档中的 此处 1 中查看有关返回数据的示例 获取数据不是问题 但我认为 d3 js 的数据连接遇到了一些问题
  • 为什么 SQL 查询的结果没有按照我期望的顺序返回?

    如果将项目插入表中 然后我编写一个查询 例如select from table 为什么结果与我期望的顺序不一样 可以通过在语句中使用 Order by 子句来强制查询的顺序 SQL 数据库实际上并不了解您放置内容的顺序 或者按照给定顺序存储
  • 用于检查 API 与 Android 的兼容性的 Maven 插件

    我正在寻找一个 Maven 插件 可以检查 Jar Class 文件是否符合 Android 指定的 API 级别 例如 所有类和方法都可以在 Android API 中解析吗 有人知道这样的插件吗 DX 工具似乎没有提供这样的功能 或者我
  • mysqldb ..“NoneType”对象不可下标

    这段代码在以下情况下工作正常cur execute and db commit 行被注释掉 即 如果我所做的只是打印查询 则该程序将运行 n 行 问题似乎出现在这里 player categories statistics cur fetc
  • 将电子邮件地址设置为 ASP.NET 会员提供商中的用户名

    我想在会员 api 中使用电子邮件地址作为用户名 而不是接受用户名 我希望用户可以使用电子邮件地址注册我的网站 并且可以使用电子邮件 ID 和密码而不是用户名和密码登录 这就是我们所做的 因此它是可重用的 我们可以在 web config
  • 内插 NA 值

    我有两组与时间无关的样本 我想合并它们并计算缺失值 在我不具备两者价值观的时代 简化示例 A lt cbind time c 10 20 30 40 50 60 70 80 90 100 Avalue c 1 2 3 2 1 2 3 2 1
  • mechanize 出现“内存不足”错误

    我试图从网站上一页一页地抓取一些信息 基本上这就是我所做的 import mechanize MechBrowser mechanize Browser Counter 0 while Counter lt 5000 Response Me
  • 如何以编程方式在 Windows 8.1 手机中查找 IMEI 号码?

    我正在尝试以编程方式在 Windows Phone 8 1 应用程序中查找 IMEI 号码 并且我引用了许多链接 但找不到任何明确的内容 我无法找到 Windows 8 1 手机应用程序的 Tapi dll 所以 Tapi 库有其他选择吗
  • 无法在 Mac OS 上安装任何 ruby​​ gems - SSL_connect 错误

    我的环境是Mac OS 10 10 5 ruby版本2 2 4 或2 2 2或2 2 0 gem 升级后 是2 6 7 rvm版本1 27 0 即使在过去的几天里 这也有几个重复的内容 但这比我可以在评论中添加的信息更多 在任何版本的 ru
  • 如何检查 Android 设备上的 wifi 或 3g 网络是否可用

    在这里 我的 Android 设备同时支持 wifi 和 3g 在特定时间 该设备上可用的网络 因为我的要求是3g可用时我必须上传少量数据 当 wifi 可用时 必须上传全部数据 所以 我必须检查连接是wifi还是3g 请帮我 提前致谢 我
  • 是否可以就地修改文件中的行?

    是否可以逐行解析文件 并在浏览各行时就地编辑行 是否可以逐行解析文件 并在浏览各行时就地编辑行 可以使用备份文件作为 stdlib 进行模拟fileinput module does 这是一个示例脚本 它删除不满足的行some condit
  • 使用 Mandrill 发送时是否可以指定我自己的 Message-Id 电子邮件标头?

    我正在使用 Mandrill 发送电子邮件 并且我想自己设置 Message ID 我现在看到这样的ID Message Id lt 30152892 2015031118380 email protected gt 我想做的是找出为什么
  • 尝试为 Azure Web App 添加 SSL 绑定时没有证书

    我正在尝试为作为 API 应用程序主机的 Azure Web 应用程序创建 SSL 绑定 导航到相关 Web 应用程序的 自定义域和 SSL 后 我添加了自定义域名 admin api foo com 并上传了我的通配符证书 foo com
  • C++中最随机的函数是什么? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我用过 include
  • 如何将Wordpress 中的帖子索引页面移动到另一个文件而不是index.php?

    Wordpress 中的索引页显示所有帖子 没有评论 我想让 index php 成为静态页面 不是博客 我已经这样做了 但我不知道如何将帖子索引移动到其他页面 例如 blog php 有什么建议么 创建两个新页面 博客 和 主页 在阅读设
  • Ruby 解决方案中的 Project Euler #3 超时

    我正在研究一些欧拉项目问题来练习使用 Ruby 解决问题 我针对问题 3 提出了以下解决方案 虽然它适用于较小的数字 但它似乎永远不会返回较大数字的值 这是因为与 Bignum 有关吗 有人可以向我描述为什么它超时了 以及解决这个问题的更好
  • Python:将函数参数的默认值传递给 *args 或 **kwargs

    考虑示例 def decorator func def wrapper args kwargs print args kwargs func args kwargs return wrapper decorator def foo x y
  • 如何输出我在数组中找到元素的索引

    我想循环遍历我的数组并查找它是否包含某些 搜索词 然后我想返回该搜索词存在于哪些索引中 我还想返回它被找到的次数 这就是我到目前为止所取得的进展 根据是否找到它进行循环以返回 是 或 否 但如何返回实际的索引和时间 是的 我知道有一些函数可
  • 在不读取IO的情况下如何知道IO是否为空?

    我有一个IO对象 如 stdout stderr 我可以read empty 看看它是否为空 但是不读它是否可以知道它是否为空呢 我知道File has size but IO才不是 Edit抱歉 如果我的问题不够清楚 我将这些对象作为返回