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

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

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

http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel5b.shtml

但是,我想知道在 D 中是否也可能相同?我从网络搜索中找不到太多东西。

最佳答案

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

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

关于c++ - D 中的 FIFO/命名管道?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19845837/

10-13 08:15