我有一个从用户读取控制台输入的进程(readline、raw_input 等 - 取决于平台)。还有另一个进程想要为第一个进程提供给定的输入。
如何在linux中做到这一点?可能吗?PS我感兴趣的语言是Python,但任何语言/平台的提示都值得赞赏。
我有一个从用户读取控制台输入的进程(readline、raw_input 等 - 取决于平台)。还有另一个进程想要为第一个进程提供给定的输入。
如何在linux中做到这一点?可能吗?PS我感兴趣的语言是Python,但任何语言/平台的提示都值得赞赏。
一般来说,管道在类 Unix 系统上运行良好。在 C 语言中,您将调用 popen ,它返回管道的两端,然后 fork 生成一个写入管道的进程和一个从管道读取的进程。代码是标准样板:
int pdes[2];
pipe(pdes);
if ( fork() == 0 ) {
close(pdes[1]);
read( pdes[0]); /* read from parent */
.....
}
else {
close(pdes[0]);
write( pdes[1]); /* write to child */
.....
}
在 Python 中,您可以使用子进程并使用管道进行通信,如 python 文档中所述