pathname
pathname pathspec → pathname
pathspec—a pathname designator.
pathname—a pathname.
Returns the pathname denoted by pathspec.
23.1.2 5
\funref{pathname} converts \param{pathspec} to a \term{pathname}
and returns the new \term{pathname}.
If \param{pathspec} is a \term{stream}
it represents the name used to open the file. This may be, but is
not required to be, the actual name of the file. If the pathspec designator is a stream, the stream can be either open or closed; in both cases, the pathname returned corresponds to the filename used to open the file. pathname returns the same pathname for a file stream after it is closed as it did when it was open.
created by \funref{open} or \macref{with-open-file} of a \term{logical pathname}, \funref{pathname} returns a \term{logical pathname}.If the pathspec designator is a file stream created by opening a logical pathname, a logical pathname is returned. \issue{PATHNAME-STREAM} It is an error if \param{pathspec} is a \term{stream} that is created with \funref{make-two-way-stream}, \funref{make-echo-stream}, \funref{make-broadcast-stream}, \funref{make-concatenated-stream}, \funref{make-string-input-stream}, \funref{make-string-output-stream}. \endissue{PATHNAME-STREAM}
;; There is a great degree of variability permitted here. The next ;; several examples are intended to illustrate just a few of the many ;; possibilities. Whether the name is canonicalized to a particular ;; case (either upper or lower) depends on both the file system and the ;; implementation since two different implementations using the same ;; file system might differ on many issues. How information is stored ;; internally (and possibly presented in #S notation) might vary, ;; possibly requiring `accessors' such as PATHNAME-NAME to perform case ;; conversion upon access. The format of a namestring is dependent both ;; on the file system and the implementation since, for example, one ;; implementation might include the host name in a namestring, and ;; another might not. #S notation would generally only be used in a ;; situation where no appropriate namestring could be constructed for use ;; with #P. (setq p1 (pathname "test")) → #P"CHOCOLATE:TEST" ; with case canonicalization (e.g., VMS) OR→ #P"VANILLA:test" ; without case canonicalization (e.g., Unix) OR→ #P"test" OR→ #S(PATHNAME :HOST "STRAWBERRY" :NAME "TEST") OR→ #S(PATHNAME :HOST "BELGIAN-CHOCOLATE" :NAME "test") (setq p2 (pathname "test")) → #P"CHOCOLATE:TEST" OR→ #P"VANILLA:test" OR→ #P"test" OR→ #S(PATHNAME :HOST "STRAWBERRY" :NAME "TEST") OR→ #S(PATHNAME :HOST "BELGIAN-CHOCOLATE" :NAME "test") (pathnamep p1) → true (eq p1 (pathname p1)) → true (eq p1 p2) → true OR→ false (with-open-file (stream "test" :direction :output) (pathname stream)) → #P"ORANGE-CHOCOLATE:>Gus>test.lisp.newest"
None.
None.
pathname, logical-pathname, Section 20.1 (File System Concepts), Section 19.1.2 (Pathnames as Filenames)
None.