问题标签 [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.
java - Java+Eclipse:如何调试接收管道/重定向标准输入的 java 程序?
我正在使用 Eclipse 开发一个 Java 程序,并认为如果没有参数,我会在我的程序中添加一个选项来解析标准输入。(否则它会解析一个文件)
如果我执行"somecommand | java -jar myjar.jar"
并去调试,我会遇到问题......然后意识到我不知道如何在 Eclipse 中启动这样的进程。如果我在命令提示符下运行它,我无法附加到正在运行的进程,因为该进程会立即启动。
关于如何调试的任何建议?
编辑:看,问题是,我最初编写程序是为了获取文件名参数。然后我认为它也可以使用标准输入,所以我从我的程序中抽象了 InputStream(正如 Queue 先生所建议的那样)。它在文件(java -jar myjar.jar myfile
)上运行良好,但在我运行时无法运行type myfile | java -jar myjar.jar
。我怀疑这两种情况有一些不同(eof 检测不同?)但我真的很想调试。
c++ - 使用标准输入执行任意进程的最简单方法是什么,标准输出转发到套接字?
我对两种情况感兴趣:
- 如何从 C++ 中做到这一点?
- 如何从系统的外壳中做到这一点?
欢迎为 Linux、Windows 和 OSX 提供答案。
c - 如何检查stdin是否仍然打开而不阻塞?
我需要用纯 C 编写的程序在标准输入关闭时停止执行。
在程序主循环中完成了无限期的工作,我无法在那里使用阻塞检查(如getc()
)(没有数据应该到达标准输入 - 它只是在未知时间内保持打开状态)。
我打算使用描述的功能来实现托管在 inetd、xinetd 或其类似物的网络守护进程——它应该在连接保持打开状态时在标准输出上发出数据,并在连接关闭时正确完成工作。现在我的程序被托管服务杀死,因为它在连接终止后不会停止。
我想知道fctntl()
将O_NONBLOCK
标志应用于标准输入描述符是否允许我read()
在非阻塞模式下使用函数?我应该select()
以某种方式使用吗?
PS 数据不是假设的,但可能会到达标准输入。一种非阻塞读出的方式将是该问题的答案。
java - Java: dealing properly with pipes as stdin
I get a weird error ("The process tried to write to a nonexistent pipe.") if I stop reading from piped input, from a program that works fine for non-piped input. How can I avoid causing this error?
code:
runtime output (testfile.txt is just a large text file with more than 10 lines):
c - 我如何在这里进行法拉盛 STDIN?
我有一个函数(在 C 中)从用户那里获取输入,(使用 scanf)将它存储在一个无符号整数中,并将输入返回给处理它的其他函数:
我想知道,因为我应该刷新标准输入,所以我想使用 getc 的 while 循环,相对于:
但是,我不确定如何:
A) 在 getc 内部执行操作,例如我应该如何处理检查并将值连接到每个获取的字符,或者,无论我是否要 getc,然后从那里连接,完全删除 scanf。
B)这是否是最合适的方法。
有好心人能给我一些提示和指示吗:)
谢谢。
c - C读取二进制标准输入
我正在尝试构建一个指令管道模拟器,但我在开始时遇到了很多麻烦。我需要做的是从标准输入读取二进制文件,然后在我操作数据时以某种方式将其存储在内存中。我需要一个接一个地读取正好 32 位的块。
如何一次读取正好 32 位的块?其次,我如何存储它以供以后操作?
这是我到目前为止所得到的,但是检查我进一步阅读的二进制块,它看起来不正确,我不认为我正在阅读我需要的 32 位。
我如何一次读取 32 位(它们都是 1/0,没有换行符等),我将它存储在什么中,char[]
可以吗?
编辑:我能够读取二进制文件,但没有一个答案以正确的顺序产生位——它们都被弄乱了,我怀疑字节顺序和一次读取和移动 8 位(1 个字符)的问题——这个需要在 Windows 和 C 上工作...?
cygwin - 如何在标准输入中使用 cp?
笔记:
# cat /tmp/foo
- 常规文件
cat /tmp/foo | xargs cp /tmp/fred
cp: 目标 /lib/d.lib 不是目录
select - ncurses 和标准输入阻塞
我有一组标准输入,每当用户键入并点击时select()
,我想从标准输入中获取一个字符串Enter。
但是 select 正在触发stdin,因为它在被击中之前准备好读取Enter,并且在极少数情况下,在输入任何内容之前。这会挂起我的程序,getstr()
直到我点击Enter.
我尝试了设置nocbreak()
,它真的很完美,只是屏幕上没有回显,所以我看不到我在输入什么。设置echo()
不会改变这一点。
我也尝试过使用timeout(0)
,但结果更加疯狂并且没有用。
c++ - 为什么这个程序会失败(有时)?
此代码只是显示问题的片段。在完整的应用程序中,我需要与进程进行读/写通信。
我编译它:
并从终端中的 bash 命令行执行它。
为什么这个程序有时会打印失败,有时会保持循环?
编辑: 这不是关于 scan/printf 的问题。同样的问题是如果我使用 iostreams + string。这个问题是关于 QProcess 与父进程的文件描述符的交互。
python - python 标准输入 eof
如何将python eof传递给stdin
这是我的代码
当我在输入输入字符串窗口后在命令行中运行 commd 时,仍然期望 Ctrl+Z 完成接受输入。
如何在程序中传递 eof 或 Ctrl+Z?
谢谢!