#### 20.1.3.1 Examples of Truenames ¶

For example, a DEC TOPS-20 system with files `PS:<JOE>FOO.TXT.1` and `PS:<JOE>FOO.TXT.2` might permit the second file to be referred to as `PS:<JOE>FOO.TXT.0`, since the “`.0`” notation denotes “newest” version of several files. In the same file system, a “logical device” “`JOE:`” might be taken to refer to `PS:<JOE>`” and so the names `JOE:FOO.TXT.2` or `JOE:FOO.TXT.0` might refer to `PS:<JOE>FOO.TXT.2`. In all of these cases, the truename of the file would probably be `PS:<JOE>FOO.TXT.2`.

If a file is a symbolic link to another file (in a file system permitting such a thing), it is conventional for the truename to be the canonical name of the file after any symbolic links have been followed; that is, it is the canonical name of the file whose contents would become available if an input stream to that file were opened.

In the case of a file still being created (that is, of an output stream open to such a file), the exact truename of the file might not be known until the stream is closed. In this case, the function truename might return different values for such a stream before and after it was closed. In fact, before it is closed, the name returned might not even be a valid name in the file system—for example, while a file is being written, it might have version `:newest` and might only take on a specific numeric value later when the file is closed even in a file system where all files have numeric versions.