DOS Fn 40H: Write to File via Handle
Compatibility: 2.0+
Expects: AH 40H
BX file handle
CX number of bytes to write (Note: 0 means truncate the file)
DS:DX address of a buffer containing the data to write
──────────────────────────────────────────────────────────────────
Returns: AX error code if CF is set to CY
number of bytes actually written ◄════ use for error test
──────────────────────────────────────────────────────────────────
Info: Writes CX bytes of data to the file or device with handle number
in BX. The data is taken starting from the caller's buffer
pointed to by DS:DX. The data is written to the current position
of the file's read/write pointer.
This updates the file's read/write pointer to set up for a
subsequent sequential-access read or write. To write to a
specific part of a file, use Fn 42H (Lseek) before this call.
Versions: 3.0+ If CX is 0000H on entry, the file is truncated at the
current file position -- or the file is padded to that position.
6.0+ (on Doublespace compressed drive) when you seek some large
distance past the end of the file and then write some data,
DoubleSpace may not allocate disk space for the unwritten bytes.
The compression ratio for such data is considered "infinite".
See MDFAT.
Notes: ■ You should always compare the return value of AX (number of
bytes written) to CX (requested write size):
• if AX = CX, the write was successful
• if AX < CX, an error occurred (most likely a full disk).
Note that Carry is not set for this "error".
■ It is handy to use this function for writing to default handles
such as the Standard Output instead of using the various text
output functions.
See Also: Handle-Oriented File I/O
DOS Functions
-♦-