3

我正在尝试执行以下操作:

一个中央应用程序,让我们称之为 alpha,在命令行中接受用户输入,并基于这些输入产生其他进程,称它们为 bravo、charlie 等。我希望父母和孩子可以双向交流。也就是说,alpha 可以读取和写入 bravo (resp. charlie),反之亦然

在 C++ 中,我可以使用 fork() 然后 exec(),并使用 FIFO-s - 一些优秀的教程在这里: Pipe, Fork, and Exec - Two Way Communication Between Parent and Child Process and http://pronix.linuxdelta .de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel5b.shtml

但是,我想知道在 D 中是否也可以这样做?我从网络搜索中找不到太多。

4

2 回答 2

4

看起来 D 的标准库支持创建管道和子进程。

http://dlang.org/phobos/std_process.html

于 2013-11-07T20:25:30.790 回答
1

碰巧,我记得你之前的帖子,并得出结论,两个问题是相关的。对于您在上一个问题(D 中的 Switch cas Alternative)中提出的问题,您确实不需要一些复杂的进程间通信 - 您基本上需要调用std.process.execute()并获取输出。将其视为类似于popen()的函数。

检查那个线程,看看我是如何使用 execute() 实现一个非常基本的“事实”命令的......如果你实现了所有必要的检查,你应该能够在该代码之上构建一个更强大的解决方案。

于 2013-11-08T14:45:05.443 回答