[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Int 21 Fn 60  - DOS 3.0+ - "truename" - Canonicalize Filename Or Path      [D]

   AH = 60h
   DS:SI -> ASCIZ filename or path
   ES:DI -> 128-byte buffer for canonicalized name

Return: CF set on error
       AX = error code
       02h invalid component in directory path or drive letter only
       03h malformed path or invalid drive letter
       ES:DI buffer unchanged
   CF clear if successful
       AH = 00h
       AL = destroyed (00h or 5Ch or last char of current dir on drive)
       buffer filled with qualified name of form D:\PATH\FILE.EXT or
         \\MACHINE\PATH\FILE.EXT
Desc:  determine the canonical name of the specified filename or path,
     corresponding to the undocumented TRUENAME command in COMMAND.COM

Notes: the input path need not actually exist
   letters are uppercased, forward slashes converted to backslashes,
     asterisks converted to appropriate number of question marks, and
     file and directory names are truncated to 8.3 if necessary.  (DR-DOS
     3.41 and 5.0 do not expand asterisks)
   '.' and '..' in the path are resolved
   filespecs on local drives always start with "d:", those on network
     drives always start with "\\"
   if path string is on a JOINed drive, the returned name is the one that
     would be needed if the drive were not JOINed; similarly for a
     SUBSTed, ASSIGNed, or network drive letter.   Because of this, it is
     possible to get a qualified name that is not legal under the current
     combination of SUBSTs, ASSIGNs, JOINs, and network redirections
   under DOS 3.3 through 6.00, a device name is translated differently if
     the device name does not have an explicit directory or the directory
     is \DEV (relative directory DEV from the root directory works
     correctly).  In these cases, the returned string consists of the
     unchanged device name and extension appended to the string X:/
     (forward slash instead of backward slash as in all other cases) where
     X is the default or explicit drive letter.
   functions which take pathnames require canonical paths if invoked via
     INT 21/AX=5D00h
   supported by OS/2 v1.1 compatibility box
   NetWare 2.1x does not support characters with the high bit set; early
     versions of NetWare 386 support such characters except in this call.
     In addition, NetWare returns error code 3 for the path "X:\"; one
     should use "X:\." instead.
   for DOS 3.3-6.0, the input and output buffers may be the same, as the
     canonicalized name is built in an internal buffer and copied to the
     specified output buffer as the very last step
   for DR DOS 6.0, this function is not automatically called when on a
     network.  Device drivers reportedly cannot make this call from their
     INIT function.  Using the same pointer for both input and output
     buffers is not supported in the April 1992 and earlier versions of
     DR DOS

See Also: AX=5FB3h,INT 2F/AX=1123h,INT 2F/AX=1221h

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson