/*
* %CopyrightBegin%
*
* Copyright Ericsson AB 1996-2016. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* %CopyrightEnd%
*/
/* -----------------------------------------------------------------
* erl_log:
*
* Provides a simple debug log for the Erlang emulator.
* It simples echoes its standard intput to the console.
*
* Author: Bjorn Gustavsson
* Created: 1996-12-06
* -----------------------------------------------------------------
*/
#include <windows.h>
#include <stdio.h>
static void print_last_error(char* message);
main()
{
HANDLE in;
HANDLE out;
char sbuf[256];
DWORD written;
DWORD numChars;
in = GetStdHandle(STD_INPUT_HANDLE);
out = CreateFile("CONOUT$", GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
if (out == INVALID_HANDLE_VALUE) {
print_last_error("CreateFile");
exit(1);
}
while (ReadFile(in, sbuf, sizeof(sbuf), &numChars, NULL) && numChars) {
WriteFile(out, sbuf, numChars, &written, NULL);
}
return 0;
}
static void print_last_error(char* message)
{
LPTSTR* lpBufPtr;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpBufPtr,
0,
NULL);
if (message == NULL)
printf("%s", lpBufPtr);
else
printf("%s: %s\n", message, lpBufPtr);
}