FILNM
Return the file specification of the open channel
WSupported on Windows
|
USupported on Unix
|
VSupported on OpenVMS
|
NSupported in Synergy .NET
|
xcall FILNM(channel, file_spec[, length])
Arguments
channel
The open channel. If the channel is not open, a “Channel has not been opened” error ($ERR_NOOPEN) is generated. (n)
file_spec
The variable that will be loaded with the file specification, left-justified over blanks. (See File specifications for a description of a file specification layout.) (a)
length
(optional) The length of the filename string. (n)
Discussion
The FILNM subroutine returns the file specification of the file that is currently open on a specified channel.
The information returned by the FILNM subroutine can clarify an I/O-oriented error when it is trapped by a program. The program can report the error number, use the ERTXT subroutine to provide a description of the error, and then call FILNM to report the specification of the file involved.
If file_spec is too short to hold the entire file specification, only the leftmost portion of the specification is returned.
The FILNM subroutine of a channel opened to TT: returns TT:.
Examples
subroutine proc_error a_chn ,d ;Optional .define TTCHN ,1 record msg ,a45 file ,a80 proc xcall ertxt(%ernum, msg) writes(TTCHN, "Error# + %string(%ernum) + ": " + msg + "at line " & + %string(%erlin)) if (^passed(a_chn)) begin xcall filnm(a_chn, file) writes(TTCHN, "File: + file(1:%trim(file))) end return endsubroutine