Document of c-modernization-kit (util) 1.0.0
Loading...
Searching...
No Matches
console-util.c File Reference

コンソール UTF-8 ヘルパー実装。 More...

#include <console-util.h>
Include dependency graph for console-util.c:

Go to the source code of this file.

Functions

void CONSOLE_UTIL_API console_init (void)
 コンソールヘルパーを初期化する。
void CONSOLE_UTIL_API console_dispose (void)
 コンソールヘルパーを終了し、リソースを解放する。

Detailed Description

コンソール UTF-8 ヘルパー実装。

Windows 環境: stdout / stderr を匿名パイプに差し替え、 読み取りスレッドがコンソール (TTY) には WriteConsoleW で UTF-16 として 出力し、パイプやファイルへは UTF-8 バイト列をそのまま転送します。
Linux 環境: console_init / console_dispose は no-op です。

Definition in file console-util.c.

Function Documentation

◆ console_init()

void CONSOLE_UTIL_API console_init ( void )

コンソールヘルパーを初期化する。

Windows 環境では stdout と stderr を内部パイプに差し替え、 バックグラウンドスレッドを起動します。
スレッドはパイプから UTF-8 バイト列を受け取り、出力先がコンソール (TTY) の場合は WriteConsoleW で UTF-16 として書き出します。 パイプやファイルへは UTF-8 バイト列をそのまま転送します。
Linux 環境では何もしません。
stdin には触れません。
本関数はプログラム開始時に一度だけ呼び出すことを想定しています。
初期化に失敗した場合は stderr に警告を出力し、何もせずに返ります。

Note
本関数を呼び出した後は console_dispose を呼び出して リソースを解放してください。

Definition at line 294 of file console-util.c.

References CONSOLE_UTIL_API.

◆ console_dispose()

void CONSOLE_UTIL_API console_dispose ( void )

コンソールヘルパーを終了し、リソースを解放する。

Windows 環境ではバックグラウンドスレッドを停止し、 stdout / stderr を元のハンドルに戻します。
Linux 環境では何もしません。
console_init を呼び出していない場合も安全に呼び出せます。

Definition at line 295 of file console-util.c.

References CONSOLE_UTIL_API.