msvcrt — Nützliche Routinen aus der MS VC++ Laufzeitumgebung


Diese Funktionen bieten Zugriff auf einige nützliche Funktionen unter Windows-Plattformen. Einige Module auf höherer Ebene verwenden diese Funktionen, um die Windows-Implementierungen ihrer Dienste zu erstellen. Zum Beispiel verwendet das Modul getpass diese in der Implementierung der Funktion getpass().

Weitere Dokumentation zu diesen Funktionen finden Sie in der Dokumentation der Plattform-API.

Das Modul implementiert sowohl die normalen als auch die Wide-Char-Varianten der Konsolen-I/O-API. Die normale API verarbeitet nur ASCII-Zeichen und ist für internationalisierte Anwendungen nur begrenzt nutzbar. Die Wide-Char-API sollte nach Möglichkeit verwendet werden.

Geändert in Version 3.3: Operationen in diesem Modul lösen nun OSError aus, wo zuvor IOError ausgelöst wurde.

Dateioperationen

msvcrt.locking(fd, mode, nbytes)

Sperrt einen Teil einer Datei basierend auf dem Dateideskriptor fd aus der C-Laufzeit. Löst bei einem Fehler OSError aus. Der gesperrte Bereich der Datei erstreckt sich von der aktuellen Dateiposition über nbytes Bytes und kann über das Ende der Datei hinausgehen. mode muss eine der unten aufgeführten LK_* Konstanten sein. Mehrere Bereiche in einer Datei können gleichzeitig gesperrt werden, dürfen sich aber nicht überschneiden. Benachbarte Bereiche werden nicht zusammengeführt; sie müssen einzeln entsperrt werden.

Löst ein Audit-Ereignis msvcrt.locking mit den Argumenten fd, mode, nbytes aus.

msvcrt.LK_LOCK
msvcrt.LK_RLCK

Sperrt die angegebenen Bytes. Wenn die Bytes nicht gesperrt werden können, versucht das Programm sofort nach 1 Sekunde erneut. Wenn die Bytes nach 10 Versuchen nicht gesperrt werden können, wird OSError ausgelöst.

msvcrt.LK_NBLCK
msvcrt.LK_NBRLCK

Sperrt die angegebenen Bytes. Wenn die Bytes nicht gesperrt werden können, wird OSError ausgelöst.

msvcrt.LK_UNLCK

Entsperrt die angegebenen Bytes, die zuvor gesperrt worden sein müssen.

msvcrt.setmode(fd, flags)

Legt den Zeilenende-Übersetzungsmodus für den Dateideskriptor fd fest. Um ihn in den Textmodus zu versetzen, sollte flags os.O_TEXT sein; für den Binärmodus sollte es os.O_BINARY sein.

msvcrt.open_osfhandle(handle, flags)

Erstellt einen C-Laufzeit-Dateideskriptor aus dem Dateihandle handle. Der Parameter flags sollte ein bitweises ODER von os.O_APPEND, os.O_RDONLY, os.O_TEXT und os.O_NOINHERIT sein. Der zurückgegebene Dateideskriptor kann als Parameter an os.fdopen() übergeben werden, um ein Datei-Objekt zu erstellen.

Der Dateideskriptor ist standardmäßig vererbbar. Übergeben Sie das Flag os.O_NOINHERIT, um ihn nicht vererbbar zu machen.

Löst ein Audit-Ereignis msvcrt.open_osfhandle mit den Argumenten handle, flags aus.

msvcrt.get_osfhandle(fd)

Gibt das Dateihandle für den Dateideskriptor fd zurück. Löst OSError aus, wenn fd nicht erkannt wird.

Löst ein Audit-Ereignis msvcrt.get_osfhandle mit dem Argument fd aus.

Konsolen-I/O

msvcrt.kbhit()

Gibt einen Nicht-Null-Wert zurück, wenn ein Tastendruck zum Lesen bereitsteht. Andernfalls wird 0 zurückgegeben.

msvcrt.getch()

Liest einen Tastendruck und gibt das resultierende Zeichen als Byte-String zurück. Nichts wird auf der Konsole ausgegeben (echoed). Dieser Aufruf blockiert, wenn noch kein Tastendruck verfügbar ist, wartet aber nicht auf die Eingabetaste Enter. Wenn die gedrückte Taste eine spezielle Funktionstaste war, gibt dies '\000' oder '\xe0' zurück; der nächste Aufruf gibt den Tastencode zurück. Der Tastendruck Strg-C kann mit dieser Funktion nicht gelesen werden.

msvcrt.getwch()

Wide-Char-Variante von getch(), gibt einen Unicode-Wert zurück.

msvcrt.getche()

Ähnlich wie getch(), aber der Tastendruck wird ausgegeben (echoed), wenn er ein druckbares Zeichen darstellt.

msvcrt.getwche()

Wide-Char-Variante von getche(), gibt einen Unicode-Wert zurück.

msvcrt.putch(char)

Gibt den Byte-String char ohne Pufferung an die Konsole aus.

msvcrt.putwch(unicode_char)

Wide-Char-Variante von putch(), akzeptiert einen Unicode-Wert.

msvcrt.ungetch(char)

Bewirkt, dass der Byte-String char in den Konsolenpuffer "zurückgeschoben" wird; er ist das nächste Zeichen, das von getch() oder getche() gelesen wird.

msvcrt.ungetwch(unicode_char)

Wide-Char-Variante von ungetch(), akzeptiert einen Unicode-Wert.

Weitere Funktionen

msvcrt.heapmin()

Erzwingt, dass der malloc()-Heap sich selbst bereinigt und ungenutzte Blöcke an das Betriebssystem zurückgibt. Bei einem Fehler wird OSError ausgelöst.

msvcrt.set_error_mode(mode)

Ändert den Ort, an den die C-Laufzeitumgebung eine Fehlermeldung für einen Fehler schreibt, der das Programm beenden könnte. mode muss eine der unten aufgeführten OUT_* Konstanten oder REPORT_ERRMODE sein. Gibt die alte Einstellung oder -1 zurück, wenn ein Fehler auftritt. Nur verfügbar in Debug-Build von Python.

msvcrt.OUT_TO_DEFAULT

Fehlerausgabe wird durch den App-Typ bestimmt. Nur verfügbar in Debug-Build von Python.

msvcrt.OUT_TO_STDERR

Fehlerausgabe ist Standardfehler. Nur verfügbar in Debug-Build von Python.

msvcrt.OUT_TO_MSGBOX

Fehlerausgabe ist eine Meldungsbox. Nur verfügbar in Debug-Build von Python.

msvcrt.REPORT_ERRMODE

Meldet den aktuellen Fehlermoduswert. Nur verfügbar in Debug-Build von Python.

msvcrt.CrtSetReportMode(type, mode)

Legt die Ziel- oder Ziele für einen bestimmten Berichtstyp fest, der von _CrtDbgReport() in der MS VC++ Laufzeitumgebung generiert wird. type muss eine der unten aufgeführten CRT_* Konstanten sein. mode muss eine der unten aufgeführten CRTDBG_* Konstanten sein. Nur verfügbar in Debug-Build von Python.

msvcrt.CrtSetReportFile(type, file)

Nachdem Sie CrtSetReportMode() verwendet haben, um CRTDBG_MODE_FILE festzulegen, können Sie das Dateihandle angeben, das den Nachrichtentext empfangen soll. type muss eine der unten aufgeführten CRT_* Konstanten sein. file sollte das von Ihnen angegebene Dateihandle sein. Nur verfügbar in Debug-Build von Python.

msvcrt.CRT_WARN

Warnungen, Meldungen und Informationen, die keine sofortige Aufmerksamkeit erfordern.

msvcrt.CRT_ERROR

Fehler, nicht behebbarer Probleme und Angelegenheiten, die sofortige Aufmerksamkeit erfordern.

msvcrt.CRT_ASSERT

Fehlgeschlagene Assertionen.

msvcrt.CRTDBG_MODE_DEBUG

Schreibt die Meldung in das Ausgabefenster des Debuggers.

msvcrt.CRTDBG_MODE_FILE

Schreibt die Meldung in ein vom Benutzer bereitgestelltes Dateihandle. CrtSetReportFile() sollte aufgerufen werden, um die spezifische Datei oder den Stream als Ziel zu definieren.

msvcrt.CRTDBG_MODE_WNDW

Erstellt eine Meldungsbox, um die Meldung zusammen mit den Schaltflächen Abort, Retry und Ignore anzuzeigen.

msvcrt.CRTDBG_REPORT_MODE

Gibt den aktuellen mode für den angegebenen type zurück.

msvcrt.CRT_ASSEMBLY_VERSION

Die CRT-Assembly-Version aus der Headerdatei crtassem.h.

msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN

Der öffentliche Schlüssel-Token der VC-Assembly aus der Headerdatei crtassem.h.

msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX

Das Präfix des Namens der Bibliotheks-Assembly aus der Headerdatei crtassem.h.