我正在尝试执行以下操作:
一个中央应用程序,让我们称之为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是否也可能相同?我在网上搜索时找不到多少。
答案 0 :(得分:4)
看起来D的标准库支持创建管道和子进程。
答案 1 :(得分:1)
碰巧,我记得你以前的帖子,并得出结论两个问题是相关的。对于您在上一个问题(Switch cas Alternative in D)中提到的内容,您实际上不需要进行一些复杂的进程间通信 - 您基本上需要调用std.process.execute()
并获取输出。可以将其视为与popen()类似的函数。
检查该线程,看看我是如何使用execute()实现一个非常基本的“fact”命令的......如果你实现了所有必要的检查,你应该能够在该代码之上构建一个更强大的解决方案。 / p>