代码之家  ›  专栏  ›  技术社区  ›  amit kumar

Java Process.getOutputStream()是如何实现的?

  •  1
  • amit kumar  · 技术社区  · 15 年前

    我知道答案取决于特定的JVM,但我想了解它通常是如何实现的?它是用popen(posix)表示的吗?在效率方面,我是否需要记住一些事情(而不是像 javadoc ). 我很想知道是否有一个关于JVM实现的一般性参考来回答这些问题。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Fakrudeen    15 年前

    看这张照片 source of JDK .

    pid = forkAndExec(prog,
                  argBlock, argc,
          envBlock, envc,
          dir,
          redirectErrorStream,
          stdin_fd, stdout_fd, stderr_fd);
    stdin_stream = new BufferedOutputStream(new FileOutputStream(stdin_fd));
    

    有关本机代码,请参阅:

    它做了一些有趣的事情! 它打开管道并将它们作为标准输入、标准输出、标准输出给子管道,管道的另一侧由父管道使用!