(v13) Specifying devices and filenames
This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP
The PostScript language operators file
, deletefile
, renamefile
, status
and filenameforall
take a file name operand that can be in one of four forms.
filename
%devicename
%devicename%
%devicename%filename
If the first form is given, the interpreter will attempt the operation on all devices that are mounted and searchable until one succeeds. If they all fail, a PostScript language error is produced, as documented in [RB3]. The devices are placed in a list whose order is predictable; for the Harlequin Core, this order is the same as the order in which the devices were mounted.
If the other forms are given, the Harlequin Core attempts the operation only on that specific device.
There are two classes of device:
Device-relative devices
Standard file system devices that can store a number of files. The files on these devices can only be specified by the first and fourth filename forms.
Single file devices
(non-relative devices, absolute devices). Usually communication devices (serial, parallel, TCP socket, and so on). The one “file” of the device can only be specified by the second and third filename forms (but the file may be opened for reading or writing so two-way communication can be implemented by one device type).
Devices model an I/O system with the characteristics defined by the structure and functions described below. In many cases, this will be similar to existing operating system semantics, but particular care should be taken to ensure that differences between the Harlequin Core device semantics and those of the host operating system (if any) are correctly concealed from the Harlequin Core.
In most but not all respects, the model used is similar to a UNIX BSD 4.2 file system.