Redirecting standard streams in Windows
Adam D Ruppe
destructionator at gmail.com
Tue Jul 18 22:09:40 UTC 2023
On Tuesday, 18 July 2023 at 21:31:54 UTC, Alexander Zhirov wrote:
> HANDLE h_stdout = GetStdHandle(STD_OUTPUT_HANDLE);
> WriteConsoleW(h_stderr, str.ptr, cast(DWORD)str.length,
> NULL, NULL);
If you checked the return value of this call, you'd find it fails
since WriteConsole only works if the output is, in fact, a
console.
You need to use WriteFile when it is redirected, which you can
detect with GetFileType to see if it is a character device or not.
More information about the Digitalmars-d-learn
mailing list