- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
理想情况下,这可以在 shell 中编写脚本,但 Perl 或 Python 也可以。C 代码可能会有帮助,但可能会失败。
我认识到重定向到 FIFO(命名管道)可能与真实管道无法区分,这已经足够我不关心的边缘情况了。
严格的 POSIX 解决方案是最好的,与 UNIX/Linux 变体无关的解决方案次之,但至少我现在需要的是可以在 Darwin (MacOS X) 上运行的东西。
在您写下答案之前 - I already know about test -t
- 这会告诉我 stdout 是否是终端(在这种情况下它绝对不是管道 - 但它不会告诉我 stdout 是否已被重定向到文件、非终端字符设备或 UNIX 域套接字而不是管道。
预期用例:我有一个命令应该在 shell 的反引号内运行,以便它可以输出设置环境变量的命令。如果标准输出未重定向到管道,我希望命令以错误中止,在那种情况下,它肯定不是由 eval `mycommand`;
调用的。
如果在反引号内运行命令时 shell 会设置一些特殊的环境变量,这将很有帮助,但由于它可能特定于 bash 或 zsh 或其他东西,管道检测更为重要。
最佳答案
你可以做一个 fstat
到文件描述符并检查返回结构,例如,st_mode
= 0x1000 (S_IFIFO) 表示命名管道。
Python 示例:
from __future__ import print_function
import sys
import os
print(os.fstat(sys.stdout.fileno()), file=sys.stderr)
Windows 输出:
C:> python test_fd.py | more
nt.stat_result(st_mode=4096, st_ino=0L, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=0L, st_atime=0L, st_mtime=0L, st_ctime=0L)
C:> python test_fd.py > test_fd.txt
nt.stat_result(st_mode=33206, st_ino=16888498602769633L, st_dev=0, st_nlink=1, st_uid=0, st_gid=0, st_size=0L, st_atime= 1401119520L, st_mtime=1401119520L, st_ctime=1401119349L)
关于linux - 检测 stdout 是否被重定向到管道(而不是文件、字符设备、终端或套接字)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873078/
我正在尝试使用谷歌浏览器的 Trace Event Profiling Tool分析我正在运行的 Node.js 应用程序。选择点样本后,我可以在三种 View 之间进行选择: 自上而下(树) 自上而
对于一个可能是菜鸟的问题,我们深表歉意,但尽管在 SO 上研究了大量教程和其他问题,但仍找不到答案。 我想做的很简单:显示一个包含大量数据库存储字符串的 Android ListView。我所说的“很
我已经开始了一个新元素的工作,并决定给 Foundation 5 一个 bash,看看它是什么样的。在创建带有水平字段的表单时,我在文档中注意到的第一件事是它们使用大量 div 来设置样式。所以我在下
我有一个 Windows 窗体用户控件,其中包含一个使用 BeginInvoke 委托(delegate)调用从单独线程更新的第 3 方图像显示控件。 在繁重的 CPU 负载下,UI 会锁定。当我附加
我有一堆严重依赖dom元素的JS代码。我目前使用的测试解决方案依赖于 Selenium ,但 AFAIK 无法正确评估 js 错误(addScript 错误不会导致您的测试失败,而 getEval 会
我正在制作一款基于滚动 2D map /图 block 的游戏。每个图 block (存储为图 block [21][11] - 每个 map 总共 231 个图 block )最多可以包含 21 个
考虑到以下情况,我是前端初学者: 某个 HTML 页面应该包含一个沉重的图像(例如 - 动画 gif),但我不想强制客户缓慢地等待它完全下载才能享受一个漂亮的页面,而是我更愿意给他看一个轻量级图像(例
我正在设计一个小软件,其中包括: 在互联网上获取资源, 一些用户交互(资源的快速编辑), 一些处理。 我想使用许多资源(它们都列在列表中)来这样做。每个都独立于其他。由于编辑部分很累,我想让用户(可能
我想比较两个理论场景。为了问题的目的,我简化了案例。但基本上它是您典型的生产者消费者场景。 (我关注的是消费者)。 我有一个很大的Queue dataQueue我必须将其传输给多个客户端。 那么让我们
我有一个二元分类问题,标签 0 和 1(少数)存在巨大不平衡。由于测试集带有标签 1 的行太少,因此我将训练测试设置为至少 70-30 或 60-40,因此仍然有重要的观察结果。由于我没有过多地衡量准
我是一名优秀的程序员,十分优秀!