DOS Fn 46H: Redirect a Handle
Compatibility: 2.0+
Expects: AH 46H
BX destination file handle (must already exist)
CX source file handle (must already exist)
──────────────────────────────────────────────────────────────────
Returns: AX error code if CF is set to CY
──────────────────────────────────────────────────────────────────
Info: Forces a file handle to refer to a different file or device. The
file handle in CX (the source) is closed (if currently open) and
then made to become a duplicate of the handle in BX (the
destination).
In other words, both CX and BX will refer to the same physical
file or device. All accesses of the CX-handle file will go to or
come from the BX-handle file.
Use this function to redirect Standard I/O. For example:
■ Open a text file for output and obtain its handle (e.g.,
0005H).
■ Set BX=0005H, CX=0001H and call Fn 46H. Note: Handle 0001H
is the pre-defined handle of the "standard output device".
■ Use Fn 3eH Close File to close handle 05H if you wish.
■ All subsequent output to the "standard output" by any process
(the current process or any spawns), including outputs via
any DOS Character I/O function and any writes to file handle
0001H via DOS Fn 40H, will go to the text file.
■ When you exit, the pre-defined file handles are reset to the
normal devices (e.g., handle 0001H is reset to "CON").
See Also: Handle-Oriented File I/O
Standard I/O
DOS Functions
-♦-