- public int read(byte[] a, int off, int length) throws IOException {
- int n = data.read(a,off,length);
- return n < 0 ? 0 : n;
+ public int read(byte[] a, int off, int length) throws ErrnoException {
+ if((flags&3) == WR_ONLY) throw new ErrnoException(EBADFD);
+ try {
+ int n = data.read(a,off,length);
+ return n < 0 ? 0 : n;
+ } catch(IOException e) {
+ throw new ErrnoException(EIO);
+ }