msvcrt — MS VC++ 런타임의 유용한 루틴
msvcrt — MS VC++ 런타임의 유용한 루틴
이 함수들은 Windows 플랫폼에서 유용한 여러 기능에 접근을 제공해요. 일부 고수준 모듈이 서비스의 Windows 구현을 만드는 데 이 함수들을 사용해요. 예를 들어 getpass 모듈은 getpass() 함수 구현에서 이걸 사용해요. 이 함수들에 대한 추가 문서는 Platform API 문서에서 찾을 수 있어요.
모듈은 콘솔 I/O API의 normal과 wide char 변형을 모두 구현해요. normal API는 ASCII 문자만 다루고 국제화된 애플리케이션에는 용도가 제한적이에요. 가능하면 어디서든 wide char API를 사용해야 해요.
사용 가능: Windows에서만.
버전 3.3에서 변경: 이 모듈의 연산이 이제 IOError가 발생하던 곳에서 OSError를 발생시킴.
출처: Python 표준 라이브러리
본문
파일 연산
msvcrt.locking(fd, mode, nbytes)
C 런타임의 파일 디스크립터 fd를 기반으로 파일 일부를 잠가요. 실패하면 OSError를 발생시켜요. 잠긴 파일 영역은 현재 파일 위치부터 nbytes 바이트까지 뻗고, 파일 끝을 넘어 계속될 수 있어요. mode는 아래 나열된 LK_* 상수 중 하나여야 해요. 파일에서 여러 영역을 동시에 잠글 수 있지만 겹칠 수는 없어요. 인접한 영역은 병합되지 않아서 각각 개별적으로 잠금 해제해야 해요. 인자 fd, mode, nbytes로 auditing 이벤트 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로 auditing 이벤트 msvcrt.open_osfhandle을 발생시켜요.
msvcrt.get_osfhandle(fd)
파일 디스크립터 fd의 파일 핸들을 돌려줘요. fd를 인식하지 못하면 OSError를 발생시켜요. 인자 fd로 auditing 이벤트 msvcrt.get_osfhandle을 발생시켜요.
콘솔 I/O
msvcrt.kbhit()
읽기를 기다리는 키 입력이 있으면 0이 아닌 값을 돌려줘요. 아니면 0을 돌려줘요.
msvcrt.getch()
키 입력을 읽고 결과 문자를 바이트 문자열로 돌려줘요. 콘솔에 아무것도 에코되지 않아요. 이 호출은 사용 가능한 키 입력이 이미 없으면 블록되지만, Enter가 눌릴 때까지 기다리지는 않아요. 누른 키가 특수 기능 키였다면 '\000' 또는 '\xe0'을 돌려주고, 다음 호출이 키코드를 돌려줘요. Control-C 키 입력은 이 함수로 읽을 수 없어요.
msvcrt.getwch()
getch()의 wide char 변형으로, 유니코드 값을 돌려줘요.
msvcrt.getche()
getch()와 비슷하지만, 인쇄 가능한 문자를 나타내면 키 입력이 에코돼요.
msvcrt.getwche()
getche()의 wide char 변형으로, 유니코드 값을 돌려줘요.
msvcrt.putch(char)
바이트 문자열 char를 버퍼링 없이 콘솔에 출력해요.
msvcrt.putwch(unicode_char)
putch()의 wide char 변형으로, 유니코드 값을 받아요.
msvcrt.ungetch(char)
바이트 문자열 char가 콘솔 버퍼로 "밀려 들어가게" 해요. getch() 또는 getche()가 읽을 다음 문자가 돼요.
msvcrt.ungetwch(unicode_char)
ungetch()의 wide char 변형으로, 유니코드 값을 받아요.
기타 함수
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()가 생성한 특정 보고 타입의 목적지(들)을 지정해요. 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— 지정된 타입에 대한 현재 모드를 돌려줌.msvcrt.CRT_ASSEMBLY_VERSION—crtassem.h헤더 파일의 CRT Assembly 버전.msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN—crtassem.h헤더 파일의 VC Assembly 공개 키 토큰.msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX—crtassem.h헤더 파일의 Libraries Assembly 이름 접두사.