Guardian Procedure Calls Reference Manual
Considerations
The FILEERROR procedure is called after a CCL return from a file-system procedure. The FILEERROR
procedure determines if an operation should or should not be retried.
• If the error is caused by one of these:
◦ A normal access request to a terminal currently in BREAK mode
◦ BREAK key typed on a terminal where BREAK is enabled
◦ Disk pack not up to speed
FILEERROR delays the calling process for one second and then returns a 1, indicating a retry
should be performed.
• If the error is an ownership error (error 200) or a path down error (error 201) and the alternate
path is operable, FILEERROR returns a 1, indicating that the operation should be retried. If the
alternate path is inoperable, a 0 is returned.
• If the error is caused by one of these:
A device not ready◦
◦ No write-enable ring on a tape unit
◦ Paper out on a line printer
An appropriate message is printed on the home terminal and is followed by a read operation
from the terminal. If STOP is entered after the read (signaling that the condition cannot be
corrected), FILEERROR returns a 0 to indicate that the operation should not be retried. If any
other data is entered (typically, carriage return), it signals that the condition has been corrected,
and FILEERROR returns a 1 to indicate that the operation should be retried.
• Any other error results in the file name, followed by the file-system error number, being printed
on the home terminal. A 0 is returned, indicating that the operation should not be retried.
If the file number has bit <0> set, no message is printed on the home terminal, unless filenum
= -1.
To prevent a message from being printed on the home terminal for filenum =-1, use filenum
=%137777.
Example
error := 1;
WHILE error DO
BEGIN
CALL WRITE(fnum,buffer,count);
IF < THEN
BEGIN
IF NOT FILEERROR(fnum) THEN CALL ABEND;
END
ELSE error := 0;
END;
FILEERROR Procedure 549