"msvcrt" --- MS VC++ ランタイムの有用なルーチン群
*************************************************

**ソースコード:** PC/msvcrtmodule.c

======================================================================

このモジュールの関数は、 Windows プラットフォームの便利な機能のいくつ
かに対するアクセス機構を提供しています。高レベルモジュールのいくつかは
、提供するサービスを Windows で実装するために、これらの関数を使ってい
ます。例えば、 "getpass" モジュールは関数 "getpass()" を実装するために
このモジュールの関数を使います。

ここに挙げた関数の詳細なドキュメントについては、プラットフォーム API
ドキュメントで見つけることができます。

このモジュールは、通常版とワイド文字列版の両方のコンソールI/O APIを実
装しています。通常版の API は ASCII 文字列のためのもので、国際化アプリ
ケーションでは利用が制限されます。可能な限りワイド文字列版APIを利用す
るべきです。

利用可能な環境: Windows.

バージョン 3.3 で変更: このモジュールの操作で以前は "IOError" が送出さ
れていたところで "OSError" が送出されるようになりました。


ファイル操作関連
================

msvcrt.locking(fd, mode, nbytes)

   C ランタイムのファイル記述子 *fd* に基づいて、ファイルの一部をロッ
   クします。 失敗すると "OSError" を送出します。 ロックする範囲は現在
   のファイル位置から *nbytes* バイトで、ファイルの末尾を越えることも
   できます。 *mode* は、以下に示す "LK_*" 定数のいずれかでなければな
   りません。 ファイル内の複数の領域を同時にロックできますが、重複はで
   きません。 隣接する領域は結合されず、それぞれ個別にロックを解除する
   必要があります。

   引数 "fd", "mode", "nbytes" を指定して 監査イベント
   "msvcrt.locking" を送出します。

msvcrt.LK_LOCK
msvcrt.LK_RLCK

   指定したバイト範囲をロックします。 ロックできない場合、プログラムは
   1 秒後に再試行します。 10 回試してもロックできなければ、"OSError"
   を送出します。

msvcrt.LK_NBLCK
msvcrt.LK_NBRLCK

   指定されたバイト列にロックをかけます。指定領域がロックできなかった
   場合、 "OSError" が送出されます。

msvcrt.LK_UNLCK

   指定されたバイト列のロックを解除します。指定領域はあらかじめロック
   されていなければなりません。

msvcrt.setmode(fd, flags)

   ファイル記述子 *fd* に対して、行末文字の変換モードを設定します。テ
   キストモードに設定するには、 *flags* を "os.O_TEXT" にします; バイ
   ナリモードにするには "os.O_BINARY" にします。

msvcrt.open_osfhandle(handle, flags)

   ファイルハンドル *handle* から C ランタイムのファイル記述子を作成し
   ます。 *flags* 引数には "os.O_APPEND"、"os.O_RDONLY"、"os.O_TEXT"、
   "os.O_NOINHERIT" をビット単位 OR で組み合わせて指定します。 返され
   たファイル記述子を "os.fdopen()" の引数として渡すと、ファイルオブジ
   ェクトを作成できます。

   ファイル記述子はデフォルトで継承可能です。 継承不可にするには
   "os.O_NOINHERIT" フラグを渡してください。

   引数 "handle", "flags" を指定して 監査イベント
   "msvcrt.open_osfhandle" を送出します。

msvcrt.get_osfhandle(fd)

   ファイル記述子 *fd* のファイルハンドルを返します。 *fd* を認識でき
   ない場合は "OSError" を送出します。

   引数 "fd" を指定して 監査イベント "msvcrt.get_osfhandle" を送出しま
   す。


コンソール I/O 関連
===================

msvcrt.kbhit()

   読み取り待ちのキー入力があればゼロ以外の値を返し、それ以外は 0 を返
   します。

msvcrt.getch()

   キー入力を読み取り、対応する文字をバイト文字列として返します。 コン
   ソールにはエコーしません。 キー入力がまだなければブロックしますが、
   "Enter" が押されるのを待つことはありません。 特殊なファンクションキ
   ーが押された場合は "'\000'" または "'\xe0'" を返し、次の呼び出しで
   キーコードを返します。 "Control"-"C" のキー入力はこの関数では読み取
   れません。

msvcrt.getwch()

   "getch()" のワイド文字列版。Unicode の値を返します。

msvcrt.getche()

   "getch()" と似ていますが、キー入力が表示可能な文字を表す場合はエコ
   ーします。

msvcrt.getwche()

   "getche()" のワイド文字列版。Unicode の値を返します。

msvcrt.putch(char)

   バイト文字列 *char* をバッファリングを行わないでコンソールに出力し
   ます。

msvcrt.putwch(unicode_char)

   "putch()" のワイド文字列版。Unicode の値を引数に取ります。

msvcrt.ungetch(char)

   バイト文字列 *char* をコンソールバッファに "押し戻し (push back)"
   ます; これにより、押し戻された文字は "getch()" や "getche()" で次に
   読み出される文字になります。

msvcrt.ungetwch(unicode_char)

   "ungetch()" のワイド文字列版。Unicode の値を引数に取ります。


その他の関数
============

msvcrt.heapmin()

   "malloc()" のヒープを整理させ、未使用のブロックをオペレーティングシ
   ステムに返します。 失敗すると "OSError" を送出します。

msvcrt.set_error_mode(mode)

   プログラムの終了につながる可能性のあるエラーについて、C ランタイム
   がエラーメッセージを書き出す先を変更します。 *mode* は、以下の
   "OUT_*" 定数のいずれか、または "REPORT_ERRMODE" でなければなりませ
   ん。 以前の設定を返し、エラーが発生した場合は -1 を返します。
   Python のデバッグビルド でのみ利用できます。

msvcrt.OUT_TO_DEFAULT

   エラーの出力先をアプリの種類に応じて決定します。 Python のデバッグ
   ビルド でのみ利用できます。

msvcrt.OUT_TO_STDERR

   エラーの出力先を標準エラー出力にします。 Python のデバッグビルド で
   のみ利用できます。

msvcrt.OUT_TO_MSGBOX

   エラーの出力先をメッセージボックスにします。 Python のデバッグビル
   ド でのみ利用できます。

msvcrt.REPORT_ERRMODE

   現在のエラーモードの値を報告します。 Python のデバッグビルド でのみ
   利用できます。

msvcrt.CrtSetReportMode(type, mode)

   MS VC++ ランタイムの "_CrtDbgReport()" が生成する特定のレポート種別
   について、1 つ以上の出力先を指定します。 *type* は、以下の "CRT_*"
   定数のいずれかでなければなりません。 *mode* は、以下の "CRTDBG_*"
   定数のいずれかでなければなりません。 Python のデバッグビルド でのみ
   利用できます。

msvcrt.CrtSetReportFile(type, file)

   "CrtSetReportMode()" で "CRTDBG_MODE_FILE" を指定した後、メッセージ
   テキストの出力先のファイルハンドルを指定できます。 *type* は、以下
   の "CRT_*" 定数のいずれかでなければなりません。 *file* には出力先と
   するファイルハンドルを指定してください。 Python のデバッグビルド で
   のみ利用できます。

msvcrt.CRT_WARN

   直ちに対処する必要のない警告、メッセージ、情報。

msvcrt.CRT_ERROR

   直ちに対処する必要のあるエラー、回復不能な問題、その他の問題。

msvcrt.CRT_ASSERT

   アサーションの失敗。

msvcrt.CRTDBG_MODE_DEBUG

   メッセージをデバッガの出力ウィンドウに書き込みます。

msvcrt.CRTDBG_MODE_FILE

   ユーザが指定したファイルハンドルにメッセージを書き込みます。 出力先
   の具体的なファイルやストリームを定めるため、"CrtSetReportFile()" を
   呼び出す必要があります。

msvcrt.CRTDBG_MODE_WNDW

   "Abort"、"Retry"、"Ignore" ボタンとともにメッセージを表示するメッセ
   ージボックスを作成します。

msvcrt.CRTDBG_REPORT_MODE

   指定した *type* の現在の *mode* を返します。

msvcrt.CRT_ASSEMBLY_VERSION

   "crtassem.h" ヘッダファイルにある CRT アセンブリのバージョン。

msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN

   "crtassem.h" ヘッダファイルにある VC アセンブリの公開キートークン。

msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX

   "crtassem.h" ヘッダファイルにある Libraries アセンブリ名の接頭辞。
