outputStream = VM_FileSystem.getOutputStream(inputDescriptor); inputStream = VM_FileSystem.getInputStream(outputDescriptor); errorStream = VM_FileSystem.getInputStream(errorDescriptor);
  public VM_Process(String program, String[] args, String[] env, String dirPath) {    pid = exec4(program, args, env, dirPath);    creatingProcessor = VM_Processor.getCurrentProcessor();    // FIXME: check for error creating process    // initialize file descriptors    VM_FileSystem.onCreateFileDescriptor( inputDescriptor, false );    VM_FileSystem.onCreateFileDescriptor( outputDescriptor, false );    VM_FileSystem.onCreateFileDescriptor( errorDescriptor, false );    // Create Java streams.    //    // NOTES:    //    // (1) If the user of this process doesn't close the    //     pipes connecting the VM to the process explicitly,    //     eventually they will be closed when the stream objects    //     are finalized.    //    // (2) We do not use File(In/Out)putStream here because we want    //     to use our VM-mediated non-blocking I/O, which is    //     currently not used by the GNU Classpath java.io code.    //     We want to do this so that people who communicate with    //     external processes, relying on blocking i/o to    //     synchronize will not get bitten by our threading.    //    outputStream = VM_FileSystem.getOutputStream(inputDescriptor);    inputStream = VM_FileSystem.getInputStream(outputDescriptor);    errorStream = VM_FileSystem.getInputStream(errorDescriptor);  }