write() Will Not Work Correctly with SS != DS

ID: Q32871

5.10 6.00 6.00a 6.00ax 7.00 | 5.10 6.00 6.00a | 1.00 1.50

MS-DOS                      | OS/2            | WINDOWS
kbprg kbfasttip

The information in this article applies to:

In code compiled with one of the products listed above, the write() function does not work correctly in text mode in any memory model when SS != DS; the function works correctly in binary mode. In text mode, write() builds a buffer on the stack to do LF to CR/LF translation. It makes a call to the functions stackavail() to make sure it does not overflow the stack; this call is what prevents it from working with SS != DS.

In Microsoft C 5.1, only the functions in the OS/2 multithreaded run- time library and the OS/2 DLL run-time library are designed to support SS != DS. In Microsoft C 6.0, all compact and large memory model run- times support SS != DS in addition to the OS/2 multithreaded run-time and the OS/2 DLL run-time. And, in Microsoft C/C++ 7.0 and Visual C++ for Windows, all compact and large memory model run-times support SS != DS, in addition to the Windows DLL run-time.

Additional reference words: kbinf 1.00 1.50 5.10 6.00 6.00a 6.00ax 7.00 KBCategory: kbprg kbfasttip KBSubcategory: CRTIss Keywords : kb16bitonly

Last Reviewed: July 18, 1997