(v13) status_file return status information
This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP
int32 status_file ( DEVICELIST *dev,
uint8 *filename,
STAT *statbuff);
typedef struct STAT {
HqU32x2 bytes ; /* size in bytes */
int32 referenced ; /* time in unspecified units */</p>
<p> int32 modified ; /* time in unspecified units */</p>
<p> int32 created ; /* time in unspecified units */
} STAT ;
This routine returns information about a named file on the device. If the file exists, the fields in the structure pointed to by the statbuff
argument should be set appropriately and 0
returned. If the file does not exist, or some error occurred when retrieving the information on the file, -1
should be returned. In the latter case, the values of the fields are undefined, and last_error
should return DeviceIOError
.
The bytes
field should be set to the length of the file in bytes.
The referenced
field should be set to the time of the last read or write operation to that file.
The created
field should be set to the time that the file was created.
Suitable default values should be substituted for either time if they are not supported by the underlying file system.
The time units and origin are not defined by [RB3]: the only legal interpretation of these values by a PostScript language program is to assume that a larger value means a later time. This implies that the value should not overflow a signed 32-bit integer in the near future; say the next twenty years, which in turn implies the time measurement cannot be too fine grained.
GGS recommends that if the implementation has a real time clock, the times should be measured in seconds since 00:00:00 (midnight), 1st Jan. 1970. If additionally, the implementation supports time zones, this should be in measured in the UTC time zone. This is the same as the UNIX definition.
If there is no real time clock, any monotonically increasing value can be used. If files persist between invocations of the product, the current value of this ‘clock' must be stored in some permanent storage.