问题标签 [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.

0 投票
4 回答
5692 浏览

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 检测不同?)但我真的很想调试。

0 投票
3 回答
583 浏览

c++ - 使用标准输入执行任意进程的最简单方法是什么,标准输出转发到套接字?

我对两种情况感兴趣:

  • 如何从 C++ 中做到这一点?
  • 如何从系统的外壳中做到这一点?

欢迎为 Linux、Windows 和 OSX 提供答案。

0 投票
5 回答
8466 浏览

c - 如何检查stdin是否仍然打开而不阻塞?

我需要用纯 C 编写的程序在标准输入关闭时停止执行。

在程序主循环中完成了无限期的工作,我无法在那里使用阻塞检查(如getc())(没有数据应该到达标准输入 - 它只是在未知时间内保持打开状态)。

我打算使用描述的功能来实现托管在 inetd、xinetd 或其类似物的网络守护进程——它应该在连接保持打开状态时在标准输出上发出数据,并在连接关闭时正确完成工作。现在我的程序被托管服务杀死,因为它在连接终止后不会停止。

我想知道fctntl()O_NONBLOCK标志应用于标准输入描述符是否允许我read()在非阻塞模式下使用函数?我应该select()以某种方式使用吗?

PS 数据不是假设的,但可能会到达标准输入。一种非阻塞读出的方式将是该问题的答案。

0 投票
1 回答
2867 浏览

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):

0 投票
1 回答
2338 浏览

c - 我如何在这里进行法拉盛 STDIN?

我有一个函数(在 C 中)从用户那里获取输入,(使用 scanf)将它存储在一个无符号整数中,并将输入返回给处理它的其他函数:

我想知道,因为我应该刷新标准输入,所以我想使用 getc 的 while 循环,相对于:

但是,我不确定如何:

A) 在 getc 内部执行操作,例如我应该如何处理检查并将值连接到每个获取的字符,或者,无论我是否要 getc,然后从那里连接,完全删除 scanf。

B)这是否是最合适的方法。

有好心人能给我一些提示和指示吗:)

谢谢。

0 投票
8 回答
39785 浏览

c - C读取二进制标准输入

我正在尝试构建一个指令管道模拟器,但我在开始时遇到了很多麻烦。我需要做的是从标准输入读取二进制文件,然后在我操作数据时以某种方式将其存储在内存中。我需要一个接一个地读取正好 32 位的块。

如何一次读取正好 32 位的块?其次,我如何存储它以供以后操作?

这是我到目前为止所得到的,但是检查我进一步阅读的二进制块,它看起来不正确,我不认为我正在阅读我需要的 32 位。

我如何一次读取 32 位(它们都是 1/0,没有换行符等),我将它存储在什么中,char[]可以吗?

编辑:我能够读取二进制文件,但没有一个答案以正确的顺序产生位——它们都被弄乱了,我怀疑字节顺序和一次读取和移动 8 位(1 个字符)的问题——这个需要在 Windows 和 C 上工作...?

0 投票
7 回答
7738 浏览

cygwin - 如何在标准输入中使用 cp?

笔记:

# cat /tmp/foo- 常规文件


cat /tmp/foo | xargs cp /tmp/fred

cp: 目标 /lib/d.lib 不是目录

0 投票
1 回答
3435 浏览

select - ncurses 和标准输入阻塞

我有组标准输入,每当用户键入并点击时select(),我想从标准输入中获取一个字符串Enter

但是 select 正在触发stdin,因为它在被击中之前准备好读取Enter,并且在极少数情况下,在输入任何内容之前。这会挂起我的程序,getstr()直到我点击Enter.

我尝试了设置nocbreak(),它真的很完美,只是屏幕上没有回显,所以我看不到我在输入什么。设置echo()不会改变这一点。

我也尝试过使用timeout(0),但结果更加疯狂并且没有用。

0 投票
2 回答
680 浏览

c++ - 为什么这个程序会失败(有时)?

此代码只是显示问题的片段。在完整的应用程序中,我需要与进程进行读/写通信。

我编译它:

并从终端中的 bash 命令行执行它。

为什么这个程序有时会打印失败,有时会保持循环?

编辑: 这不是关于 scan/printf 的问题。同样的问题是如果我使用 iostreams + string。这个问题是关于 QProcess 与父进程的文件描述符的交互。

0 投票
1 回答
5390 浏览

python - python 标准输入 eof

如何将python eof传递给stdin

这是我的代码

当我在输入输入字符串窗口后在命令行中运行 commd 时,仍然期望 Ctrl+Z 完成接受输入。

如何在程序中传递 eof 或 Ctrl+Z?

谢谢!