Summary of operators for files

This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.

The following are the file operators in [RB3]:

  • Opening and closing files: file, filter, closefile, and run

  • Reading files: read, readhexstring, readline, readstring, and token 

  • Writing files: write, writehexstring, writestring, print, flus , flushfile, printobject, and writeobject

  • Positioning files: resetfile, setfileposition

  • Queries: bytesavailable, status, currentfile, fileposition 

  • Manipulating files: deletefile, renamefile

  • Shortcuts for printing: = , == , stack, pstack (These are procedures that ultimately use the print operator.)

  • Interpreter and scanner: setobjectformat, currentobjectformat

fileposition and setfileposition can represent file offsets larger than 2 GiB as reals. There's still a limit of 1 TiB, above which an error is triggered.

Three additional filing operators in statusdict are extensions: filelinenumber, filename, and filekind, which are described in Device and file operator definitions. Also, =print is not documented by Adobe but widely used—again, see Device and file operator definitions.

Aditionally, a large number of other operators and procedures have side effects that result in filing calls from the Harlequin RIP. Notable are:

  • exec (applied to a file object) reads from a file or filter to obtain its data, closing it on encountering end-of-file.

  • restore closes files going out of scope (that is, opened since the corresponding save).

  • resource operators (such as findresource and findfont) use combinations of file, exec, closefile, and others.

  • The main server loop uses a variety of calls, especially on the %config% device to obtain another job to run.