问题标签 [popen]

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 投票
1 回答
1028 浏览

ruby - 使用包裹在 shell 脚本中的 ruby​​ popen

我完成了一个家庭作业的短文件,它使用 IO.popen("command").readlines 来获取该命令的 STDOUT。但是,我需要编写一个 shell 脚本来包装我的 ruby​​ 文件。没问题,但是以某种方式将它放在 shell 脚本中会使 readlines 挂起。

这行得通

这挂在readlines上。ruby script.rb是 script.sh 包含的所有内容。

0 投票
8 回答
22486 浏览

c++ - C++ system() 函数 — 如何收集发出的命令的输出?

我正在使用 C++system()函数运行一些命令:

如何从发出的命令中收集标准输出?

具体来说,我想收集发出命令的输出(例如,发出命令的目录列表输出dir)。

0 投票
2 回答
4735 浏览

c++ - 使用 popen 留在目录中

我想制作一些 C++ 程序,我在popen这里使用函数将命令发送到 Unix 中的命令行。它工作正常,但是当我调用时cd directory,目录不会改变。cd directory在完成脚本目录路径更改后,当我尝试在某些脚本中运行时,我认为它是相同的。所以,我必须像. ./script.shnot那样运行脚本./sript.sh,但是如何使用函数来做到这一点popen?我试图". "在 的第一个参数之前添加popen,但运行". ls"会出错。

代码:

message.body();string我想要运行的(我从 接收这个XMPP)。string例如,当"ls"它返回string实际目录中的文件列表时。但是当消息是 时"cd directory",什么都不会发生,比如尝试更改脚本中的目录。

0 投票
3 回答
3797 浏览

c++ - FILE * 和 istream:将两者连接起来?

假设我“打开”一个可执行文件,我得到一个FILE*作为回报。此外,假设我想将此文件“连接”到一个istream对象以便于处理,有没有办法做到这一点?

0 投票
2 回答
1592 浏览

linux - AF_UNIX 套接字:我可以在进程之间传递套接字句柄吗?

假设我创建了一个socketpair()并将其中一个套接字的句柄传递给一个衍生进程(popen),该进程能否与父进程通信?

我看到的示例是使用fork()的,这超出了我当前项目的范围。

更新:我尝试了一个简单的测试:

  1. 客户端:socketpair带套接字[0]

  2. 从客户端使用posix_spawn套接字1作为命令行参数

  3. 客户端:write到套接字...客户端退出没有任何警告...

这种方法似乎有问题。

更新: 我还发现了这个注释

Pipes and socketpairs are limited to communication between processes with a common ancestor.

0 投票
1 回答
303 浏览

python - 使用 Python 调试 Windows 控制台应用程序的输出读取

这个问题与这个问题非常相似。我想从我的控制台应用程序中读取输出。该应用程序不会终止,也不会从标准输入中获取输入。

当我修改 rix0rrr 的解决方案以执行我的应用程序然后运行他的解决方案时,Python 挂起,因为 read(1) 没有返回。应用程序的初始输出是“正在启动服务器。\n”。你能猜出我的应用程序可能具有哪些属性会阻止他的解决方案工作吗?我改变的程度是我改变了这个:

对此:

我还创建了我的应用程序的测试版本,它立即返回并验证了应用程序的输出在这种情况下是由 read() 返回的。正如预期的那样,他原始的、未修改的示例也没有挂起。

我还尝试了 Piotr 在他的回答中链接到的 ActiveState 代码。在这种情况下,进程也不会返回任何输出。

这是 Vista 上的 Python 2.4.4。

0 投票
2 回答
204760 浏览

python - 如何为 popen 指定工作目录

有没有办法在 Python 中指定命令的运行目录subprocess.Popen()

例如:

我的 Python 脚本位于C:\programs\python

是否可以C:\mytool\tool.exe在目录中运行D:\test\local

如何设置子进程的工作目录?

0 投票
2 回答
3399 浏览

python - 解析 apt-get install 的输出以获取进度条

我正在开发一个简单的 GUI Python 脚本来在系统上执行一些简单的任务。其中一些工作涉及apt-get install安装一些软件包。

在此过程中,我想使用终端中 apt-get 界面中显示的小百分比显示一个进度条,该进度条应随着下载进度而更新。

但!我找不到获取进度信息的方法。管道或重定向 apt-get 的输出只会给出显示每个包的“已完成下载”消息的静态行,并且subprocess.Popen()在我的脚本中读取时也是如此。

如何从 apt-get 的输出中读取文件下载的百分比?

0 投票
2 回答
2904 浏览

locking - popen - 锁或不是线程安全的?

我见过一些popen()/pclose() 的实现。他们都使用了一个静态的pid列表,并且没有锁定:

或者这个,据说是 NetBSD:

它看起来像 - 不是线程安全的实现吗?还是我错过了一些明显的东西?

0 投票
2 回答
1255 浏览

haskell - 最接近于 Haskell 中的 subprocess.communicate

我想从 Haskell 做一个 popen() / python 的 subprocess.communicate - 启动一个程序,给它 stdin,然后得到它的 stdout/stderr。最直接/ Haskellish的方法是什么?