问题标签 [stdin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 持续从 Ruby 中外部进程的 STDOUT 读取
我想通过ruby脚本从命令行运行blender,然后它将逐行处理blender给出的输出以更新GUI中的进度条。搅拌机是我需要阅读其标准输出的外部进程并不重要。
当搅拌机进程仍在运行时,我似乎无法捕捉到搅拌机通常打印到外壳的进度消息,我尝试了几种方法。在搅拌机退出后,我似乎总是访问搅拌机的标准输出,而不是在它仍在运行时。
这是一个失败的尝试示例。它确实获取并打印了搅拌机输出的前 25 行,但只有在搅拌机进程退出后:
编辑:
为了让它更清楚一点,调用 blender 的命令会在 shell 中返回一个输出流,指示进度(第 1-16 部分已完成等)。似乎在搅拌机退出之前,任何对“获取”输出的调用都会被阻止。问题是如何在搅拌机仍在运行时访问此输出,因为搅拌机将其输出打印到外壳。
unix - 如何创建用于读取输出和写入输入的伪 tty
我正在使用 fork() 和 execvp() 来生成一个必须相信它已连接到交互式终端才能正常运行的进程。
一旦产生,我想捕获进程的所有输出,以及能够将输入发送到进程。
我怀疑 psuedo-ttys 在这里可能会有所帮助。有没有人有关于如何做到这一点的片段?
java - 如何在 CLI 应用程序中“拦截”Ctrl+C?
如何在 CLI(命令行界面)Java 应用程序中拦截 Ctrl+ C(通常会终止进程)?
是否存在多平台解决方案(Linux、Solaris、Windows)?
我正在使用Console
's readLine()
,但如有必要,我可以使用其他方法从标准输入中读取字符。
perl - Perl脚本在通过文件提供标准输入时运行带有参数的C可执行文件?
我想./runnable
在参数input.afa上运行和执行。这个可执行文件的标准输入是通过文件finalfile。我早些时候尝试使用 bash 脚本来做同样的事情,但这似乎没有成功。所以我想知道 Perl 是否提供这样的功能。我知道我可以使用反引号或 system() 调用运行带有参数的可执行文件。关于如何通过文件提供标准输入的任何建议。
_更新_
正如我所说,我为此编写了一个 bash 脚本。我不确定如何在 Perl 中进行操作。我写的 bash 脚本是:
标准输入文件中的数据如下,每一行对应一次输入。所以如果有 10 行,那么可执行文件应该运行 10 次。
perl - 如何在 Perl 中实时读取外部命令的输出?
我运行了一些 bash 脚本,但它们可能需要几个小时才能完成,在此期间它们会喷出下载速度、ETA 和类似信息。我需要在 perl 中捕获这些信息,但是我遇到了一个问题,我无法逐行读取输出(除非我遗漏了什么)。
任何帮助解决这个问题?
编辑:为了更好地解释这一点,我正在同时运行几个 bash 脚本,我希望将 gtk 与 perl 一起使用来生成方便的进度条。目前,我为每个希望运行的 bash 脚本运行 2 个线程,一个用于更新图形信息的主线程。它看起来像这样(尽可能减少):
c - 来自 stdin 的 read() 不会忽略换行符
我正在使用以下条件语句从标准输入中读取。
当从标准输入输入数据时,一般用户在完成后按回车键。但是read()
在这种情况下也将 '\n' 视为输入,n = 1
并且条件不会评估为假。除了检查 buf 的内容之外,当用户在标准输入上按 enter(不输入任何内容)时,有没有办法使条件评估为 false。read()
除了我可能用于此目的之外,还有其他功能吗?
就此而言,当输入来自标准输入(stdin)时,读取确定输入结束的方法是什么?
c++ - 使用 QTextStream 以非阻塞方式读取标准输入
使用 Qt,我试图以非阻塞方式读取标准输入流的内容。当套接字收到一些新数据时,我正在使用 QSocketNotifier 来提醒我。通知程序的设置如下所示:
onData()
插槽如下所示:
如您所见,我正在尝试使用 select() 系统调用来告诉我何时用完了要读取的数据。然而,实际上发生的事情是在我阅读了第一行文本后,select() 调用返回 0。因此,例如,如果我将 5 行文本写入进程的标准输入流,我只会读取第一行。
可能是什么问题呢?
c# - 我可以将二进制文件放入标准输入吗?C#
与此问题相关的是使用 7z 加密二进制文件而没有文件名?
在 C# 中,我如何将二进制文件放入 STDin?我希望下面的方法可以工作,但它没有。这是有道理的。那么我如何推送一个 byte[] 数组呢?
c# - 无法使用 7-Zip 压缩标准输入并使用标准输出输出?
我收到错误“未实施”。
我想通过标准输入使用7-Zip压缩文件,然后通过标准输出获取数据并使用我的应用程序进行更多转换。在手册页中,它显示了这个例子:
% 回声富 | 7z 一个虚拟 -tgzip -si -so > /dev/null
我正在使用 Windows 和 C#。
结果:
代码:
还有另一种简单的方法可以将文件读入内存吗?
现在我可以 1)写入一个临时文件并读取(简单并且可以复制/粘贴一些代码)2)使用文件管道(中等?我从来没有做过)3)别的东西。
c++ - 检测标准输入是终端还是管道?
当我python
从没有参数的终端执行“”时,它会打开 Python 交互式 shell。
当我cat | python
从终端执行“”时,它不会启动交互模式。不知何故,在没有得到任何输入的情况下,它检测到它已连接到管道。
我将如何在 C 或 C++ 或 Qt 中进行类似的检测?