Copyright (C) 1994, Digital Equipment Corp.
File: MxFile.i3
UNSAFE MODULE; IMPORT File, OSError; CONST BIG = 16_1000000; (* 2^24 => 16M *) TYPE BufPtr = UNTRACED REF ARRAY [0..BIG-1] OF File.Byte; PROCEDURE MxFile Read (f: File.T; VAR(*OUT*)buf: ARRAY OF CHAR; len: INTEGER): INTEGER RAISES {OSError.E} = VAR ptr := LOOPHOLE (ADR (buf[0]), BufPtr); BEGIN RETURN f.read (SUBARRAY (ptr^, 0, MIN (len, NUMBER (buf))), mayBlock := TRUE); END Read; BEGIN END MxFile.