如何为Mono中创建的进程指定参数和流?

时间:2014-08-05 22:03:53

标签: c# linux unix mono

我想在类Unix系统上从Mono应用程序启动一个进程,指定命令行参数和文件描述符。

例如,这包括:

  • 将stdout和stderr重定向到相同的fdes

  • 将stdout重定向到管道,并将管道的另一端连接到另一个进程的stdin

  • 重定向fdes> 2(不是stdin,stdout,stderr)

这些基本的Unix功能似乎在Mono中没有任何支持。

  • System.Diagnostics.Process旨在用于Windows系统,因为它只允许将参数作为单个字符串传递,并且没有将输出重定向到特定管道或文件的规定。为了从我的代码到系统调用,引用和取消引用字符串似乎也是鲁莽的。

  • Mono.Unix.UnixProcess似乎缺乏创建新流程的能力。

  • Mono.Unix.Native.Syscall只有execve()方法,没有fork()方法,这是可以理解的,但它仍然让我感到高度干燥。

那么,我该如何实现呢?似乎我唯一的选择是在C中编写一个程序来完成我想要的东西,然后从Mono中调用该程序,但这似乎是一种相当复杂的方法来完成只需要C语言等几行代码的东西。蟒。

0 个答案:

没有答案