Distinguishing Files from Devices
If the object being opened has no disk or path information and is aliased (see the Installation and Configuration Guide for configuration options), then it is a special class of device - one that is controlled using a device driver. If the object is a device and is not aliased, then a default device driver will come into play. If the object opened is not a device, then it is a file.
A file in PRO/5 is either a directory, a STRING file, a CISAM file, or a PRO/5 file. A directory is a special case of file. It is a file containing the names of files in the "directory". STRING files are files in which PRO/5 does not recognize a structure and thus accesses in a manner like that of a big string. A PRO/5 file always has the string "<<bbx>>" as the first 7 bytes of the file. The next 8 bytes are the FID() of the file in PRO/5. If PRO/5 can read the first 7 bytes and they are the proper identifier, the following 8 bytes are checked for validity. If they do not define a proper FID(), PRO/5 will return an !ERROR=54 (invalid file header). A file with an invalid header may not be OPENed, ERASEd, or RENAMEd.
If the file fails the "<<bbx>>" test, it will always be considered a STRING file.