1 // PosixProcess.java - Subclass of Process for POSIX systems.
3 /* Copyright (C) 1998, 1999 Free Software Foundation
5 This file is part of libgcj.
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
14 import java
.io
.InputStream
;
15 import java
.io
.OutputStream
;
16 import java
.io
.IOException
;
19 * @author Tom Tromey <tromey@cygnus.com>
23 // This is entirely internal to our implementation.
25 // This file is copied to `ConcreteProcess.java' before compilation.
26 // Hence the class name apparently does not match the file name.
27 final class ConcreteProcess
extends Process
29 public native void destroy ();
31 public int exitValue ()
34 throw new IllegalThreadStateException("Process has not exited");
38 public InputStream
getErrorStream ()
43 public InputStream
getInputStream ()
48 public OutputStream
getOutputStream ()
53 public native int waitFor () throws InterruptedException
;
55 // This is used for actual initialization, as we can't write a
56 // native constructor.
57 public native void startProcess (String
[] progarray
,
62 // This file is copied to `ConcreteProcess.java' before
63 // compilation. Hence the constructor name apparently does not
64 // match the file name.
65 public ConcreteProcess (String
[] progarray
,
70 startProcess (progarray
, envp
, dir
);
73 // The process id. This is cast to a pid_t on the native side.
76 // True when child has exited.
77 private boolean hasExited
;
79 // The exit status, if the child has exited.
83 private InputStream errorStream
;
84 private InputStream inputStream
;
85 private OutputStream outputStream
;