CLCS
Function

truename

truename filespectruename

Arguments and Values

filespeca pathname designator.
truenamea physical pathname.

Description

truename tries to find the file indicated by filespec and returns its truename. If the filespec designator is an open stream, its associated file is used.

If filespec is a stream, truename can be used whether the stream is open or closed. It is permissible for truename to return more specific information after the stream is closed than when the stream was open.

If filespec is a pathname it represents the name used to open the file. This may be, but is not required to be, the actual name of the file.

Examples

;; An example involving version numbers.  Note that the precise nature of
;; the truename is implementation-dependent while the file is still open.
 (with-open-file (stream ">vistor>test.text.newest")
   (values (pathname stream)
           (truename stream)))
⇒  #P"S:>vistor>test.text.newest", #P"S:>vistor>test.text.1"
OR⇒ #P"S:>vistor>test.text.newest", #P"S:>vistor>test.text.newest"
OR⇒ #P"S:>vistor>test.text.newest", #P"S:>vistor>_temp_._temp_.1"

;; In this case, the file is closed when the truename is tried, so the
;; truename information is reliable.
 (with-open-file (stream ">vistor>test.text.newest")
   (close stream)
   (values (pathname stream)
           (truename stream)))
⇒  #P"S:>vistor>test.text.newest", #P"S:>vistor>test.text.1"

;; An example involving TOP-20's implementation-dependent concept 
;; of logical devices -- in this case, "DOC:" is shorthand for
;; "PS:<DOCUMENTATION>" ...
 (with-open-file (stream "CMUC::DOC:DUMPER.HLP")
   (values (pathname stream)
           (truename stream)))
⇒  #P"CMUC::DOC:DUMPER.HLP", #P"CMUC::PS:<DOCUMENTATION>DUMPER.HLP.13"

Exceptional Situations

An error of type file-error is signaled if an appropriate file cannot be located within the file system for the given filespec,

or if the file system cannot perform the requested operation.

An error of type file-error is signaled if pathname is wild.

Notes

truename may be used to account for any filename translations performed by the file system.