popen相关内容

为什么不能用popen方法沟通mpg123的?

我在写我的覆盆子PI的媒体服务器。我能够创建一个使用的popen通过一个遥控器来控制omxplayer程序。 我现在想控制音乐mpg123的。我采取了同样的code,在omxplayer程序与工作的popen并将其应用到mpg123的,但它不工作。它启动,但不会承认发送给它的任何输入。我不知道为什么人们会工作,其他的不会的。 下面是我的code: 无效play_music(字符*名单,INT ..
发布时间:2016-08-23 12:10:39 服务器开发

如何使用C中的popen传递多个命令?

我想用绘制 GNUPLOT 这是一个命令行界面图。但我需要将它集成在C程序中,因此,如果计划得到执行,图形绘制。这可以通过使用的popen 命令来完成。我已经做了code,其中我做的的popen(“gnuplot的”,“R”)所以现在当我执行程序,gnuplot的开始。但我需要发送类似的popen多个命令(“罪(X)”,“R”)在的popen(“gnuplot的”,“R” )所以,当我执行code ..
发布时间:2016-08-23 11:26:53 C/C++

用popen()来调用一个shell命令?

当运行到x code以下code,我得到不一致的行为。有时它正确打印Git版本,其他时候不打印任何东西。从shell命令的返回code始终为0,但。为什么这可能是任何想法?我在做什么错了? 的#define BUFFER_SIZE 256 INT主(INT ARGC,为const char * argv的[]) { FILE * fpipe; 字符*命令=“/选择/ loca ..
发布时间:2016-08-23 10:56:38 C/C++

使用FCLOSE来的popen管道是一个严重的错误?

几个月前,我写的Linux使用一个CGI应用程序的popen()读取命令的输出,然后我关闭管道与 FCLOSE()。 现在,我读到了近管道是需要使用函数,pclose()。 手册上说: 从的popen()的返回值是所有正常的标准I / O流 方面节省,它必须以函数,pclose()来关闭而不是 FCLOSE(3)。 我的code是这样的: IF((NULL!=(F =的po ..
发布时间:2016-08-22 17:01:56 服务器开发

是用C的popen()和系统()之间的差

我想我的C code内执行的二进制。这是更好地执行? popen()完成或系统() 修改:我尝试使用制度,但在执行的过程中,似乎陷入到底,不回我code。 这是做什么有什么建议? 感谢 解决方案 的popen()为您提供了对过程的输入或输出文件流控制。 系统()没有。如果你不需要访问过程的I / O,您可以使用系统()为简单。 系统()是C89和C99; 的popen()与POSI ..
发布时间:2016-08-22 16:39:39 C/C++

打开一个cmd程序的全部功能(I / O)

我试过的popen()和它运作良好的输出“R”作为第二个参数传递;我知道你可以使用“W”写作模式,它为我工作(该方案是只有一个 scanf()的)。我的问题是如何使用append(“一”)模式。你既可以写和读,你怎么知道什么时候该程序输出的东西,当它要求用户输入? 解决方案 的popen使用的管道(这是“P”中“的popen”)和管道是单向的。可以读取或从管的一端,而不是两个写。两者都要读 ..
发布时间:2016-08-22 16:20:07 C/C++

用popen()打开命令行程序?

是否可以打开使用其他程序的程序?例如: 我想要在C命令行应用程序,它会提示用户在程序的名称输入(可以说微软Word.app),并且该程序将启动。我会做这样的事情: 的#include<&stdio.h中GT; #包括LT&;&time.h中GT; INT主(INT ARGC,为const char * argv的[]){ 焦炭PROGRAMNAME [1000]; 的pr ..
发布时间:2016-08-22 16:03:34 C/C++

不成功的使用的popen()在C?

我可以运行下面的命令 XWD -root | xwdtopnm | pnmtojpeg> screen.jpg 在linux下的一个终端,它会产生我当前屏幕的屏幕截图。 我尝试做与code以下内容: 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; 诠释的main() { FILE * fpipe; 字符*命令=“XWD -ro ..
发布时间:2016-08-22 14:42:47 C/C++

通过与插座的popen执行命令()

任何人都可以给我一个手试图实现以下服务器和客户端: 服务器: 的#include<&stdlib.h中GT; #包括LT&;&unistd.h中GT; #包括LT&; SYS / socket.h中> #包括LT&; netinet / in.h中> #包括LT&;&stdio.h中GT; #包括LT&;&string.h中GT;诠释主要(无效){ INT袜子=插座( ..
发布时间:2016-08-19 15:02:00 服务器开发

Ç - 获取PID的进程打开的popen

我用C编写的程序,打开用popen另一个程序。我想获得该程序或某些类型的处理程序,它的PID,从而在一定时限后,将其杀死,或者如果它超过一定的RAM,和stdout限制。我想,这一定与ptrace的,它需要的PID,我不知道如何获得工作要做。 解决方案 只写你自己的实现的popen 的返回的PID。它的丑陋远远小于围绕现有的popen 一些疯狂的两轮牛车。你可以找到源头code到的pope ..
发布时间:2016-08-19 14:06:47 C/C++

如何prevent FGETS块时,文件流没有新数据

我有执行“尾-f sometextfile”一个的popen()函数。 Aslong因为有数据的FILESTREAM显然我可以打通与fgets数据()。现在,如果没有新的数据来自于尾部,与fgets()挂起。我试图ferror()函数和的feof()无济于事。我怎样才能确保与fgets()不尝试读取数据时,没有什么新的文件流吗? 其中的建议之一是选择()。由于这是针对Windows平台的选择似乎 ..
发布时间:2016-08-18 14:47:46 C/C++

杀死一个进程开始的popen

与的popen 打开一个管道的过程后,有没有办法杀已经启动的进程? (使用函数,pclose 是不是我想要的,因为这将等待进程结束,但我要杀死它。) 解决方案 不要使用popen()完成,并编写您自己的包装,做你喜欢什么。 这是相当简单到餐桌(),然后替换标准输入和放大器;标准输出 在您的孩子使用dup2(),然后调用exec() 这样,你的父母将有确切的孩子PID,并且可以使用 ..
发布时间:2016-08-18 13:56:18 C/C++

用popen非阻塞管?

我想用开管 的popen() 并有无阻塞“读”访问。 我怎样才能做到这一点? (我发现的例子是所有阻塞/同步) 解决方案 设置是这样的: FILE * F =的popen(“./输出”,“R”); INT D =的fileno(F); 的fcntl(D,F_SETFL,O_NONBLOCK); 现在你可以阅读: ssize_t供R = READ(D,BUF,计数); 如果(R ..
发布时间:2016-08-18 13:55:00 服务器开发

FCLOSE()/ pclose函数()可能会阻止某些文件指针

调用 FCLOSE()这里经过 DUP() ING的文件描述符块,直到子进程结束( presumably因为流已经结束)。 FILE * F =的popen(“./输出”,“R”); INT D = DUP(的fileno(f)条); FCLOSE(F); 但是,通过手动执行管道(),叉(), execvp( )的的popen(),然后 DUP() ING管道的读取文件描述,关闭原始不会阻 ..
发布时间:2016-08-18 13:30:26 服务器开发

ç的popen不会赶上标准错误

我试图用的popen()搭上调用的标准错误,当然,它似乎并没有被这样做。任何想法? 我的code看起来或多或少是这样的: 的popen(“用nedit”,“R”); 但我发现了这一切垃圾关于非UTF8我的屏幕上...... 解决方案 的popen 为您提供了一个进程的标准输出,而不是它的标准错误的文件句柄。它的第一个参数是PTED作为一个shell命令间$ P $,所以你可以在里面 ..
发布时间:2016-08-17 22:57:25 C/C++

popen()完成替代

我的问题是一个延伸:的popen创建一个额外的sh进程 动机: 1)我的程序需要创建一个孩子做哪些尾上的文件。我需要处理由线路输出线。这就是为什么我使用的popen ,因为它返回FILE *。我可以很容易地获取一行,做我需要做的,并打印出来。 用popen这一个问题是,你不(在我的情况tail命令)获得孩子的PID。 2)我的计划应其子之前不会退出完成。所以,我需要做的等;但没有PID,我 ..
发布时间:2016-08-17 22:48:36 C/C++

可以popen()完成建立双向管道像管()+ fork()的?

我在实现C ++模拟文件系统(带主要是C)上的管道。它需要在主机shell中运行命令,但模拟的文件系统上执行的管道本身。 我可以用管道实现这一目标(),叉()和系统()系统调用,但我preFER使用的popen()(它处理创建一个管道,派生进程,并传递到shell命令)。这未必是可能的,因为(我想)我需要能够从管道,在子处理结束阅读的父进程写,写输出从子后面,最后读取从父该输出。该手册页的pop ..
发布时间:2016-08-17 21:48:33 C/C++

将参数传递到Python subprocess.Popen

我转换这个bash脚本到Python。我现在有一个工作的Python版本。然而,为了得到它的工作,我不得不砍我通过它变成一个长字符串传递到subprocess.Popen()命令。 我不希望使用一个长的命令字符串。我想打入正确的个别参数这一点。我怎样才能做到,在这种的具体的例子吗? 我的具体问题是我要如何改变这一行: =过程subprocess.Popen(CMD,壳= TRUE,... ..
发布时间:2016-08-03 12:34:01 服务器开发

执行在python bash脚本

我创建了一个expect脚本,当执行,SSH的到服务器并执行一系列命令。伪code是这样的: #!的/ usr / bin中/预期 产卵SSH USR @ MYIP 预计“密码” 发送“输入mypassword \\ N”的; 发送“./mycommand1\\r” 发送“./mycommand2\\r” 相互作用 当从bash shell中(./myscript.txt $)执行code执 ..
发布时间:2016-08-03 11:11:10 Python