Visual C++ 2005의 CRT 기능
업데이트: 2007년 11월
이 항목에서는 Visual C++ 2005의 새로운 CRT 기능에 대한 목록을 제공합니다.
CRT
주요 변경 사항
Breaking Changes (CRT)를 참조하십시오.
새로운 기능
여러 함수의 보안 버전이 추가되었습니다. 이러한 함수는 오류를 더 나은 방식으로 처리하고 버퍼를 더 엄격하게 제어하여 일반적인 보안 결함이 발생하지 않도록 합니다. 새로운 보안 버전에는 _s 접미사가 추가됩니다.
보안이 약했던 기존 버전의 여러 함수가 이제는 사용되지 않습니다. 이와 관련된 경고를 표시하지 않으려면 _CRT_SECURE_NO_WARNINGS를 정의합니다. 자세한 내용은 Security-Enhanced Versions of CRT Functions를 참조하십시오.
기존의 여러 함수에서 이제 매개 변수의 유효성을 검사하고 잘못된 매개 변수가 전달된 경우 잘못된 매개 변수 처리기를 호출합니다. 자세한 내용은 개별 함수의 참조 항목과 Parameter Validation 항목을 참조하십시오.
기존의 여러 함수가 이전과는 달리 errno를 설정합니다. 특정 errno 정보에 대한 자세한 내용은 개별 함수의 참조 항목을 참조하십시오.
정수 형식과 함께 사용되는 typedef errno_t가 추가되었습니다. errno_t는 함수 반환 형식이나 매개 변수에서 errno의 오류 코드를 처리할 때마다 사용됩니다. errno_t는 errcode를 대체합니다.
로캘 종속 함수에 버전이 부여됩니다. 이 경우 현재 로캘을 사용하는 대신 로캘을 매개 변수로 사용합니다. 이러한 새 함수에는 _l 접미사가 추가됩니다. 로캘 개체를 사용하여 작동하는 여러 가지 함수가 새로 추가되었습니다. 이러한 새 함수에는 _get_current_locale, _create_locale 및 _free_locale이 있습니다. 자세한 내용은 개별 함수의 참조 항목을 참조하십시오.
파일 핸들의 잠금 및 잠금 해제를 지원하는 새 함수가 추가되었습니다. 자세한 내용은 _lock_file 및 _unlock_file을 참조하십시오.
이전 버전에서와 달리 _spawn 함수 패밀리가 성공 시 errno를 0으로 다시 설정하지 않습니다. 자세한 내용은 _spawn, _wspawn Functions를 참조하십시오.
인수가 적용되는 순서를 지정하는 데 사용할 수 있는 printf 함수 패밀리의 버전을 사용할 수 있습니다. printf_p Positional Parameters, _cprintf_p, _cprintf_p_l, _cwprintf_p, _cwprintf_p_l, _printf_p, _printf_p_l, _wprintf_p, _wprintf_p_l, _sprintf_p, _sprintf_p_l, _swprintf_p, _swprintf_p_l, _fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l, _vprintf_p, _vprintf_p_l, _vwprintf_p, _vwprintf_p_l, _vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l 및 _vfprintf_p, _vfprintf_p_l, _vfwprintf_p, _vfwprintf_p_l를 참조하십시오.
이제 유니코드 텍스트 형식이 지원됩니다. _open 함수가 _O_TEXTW, _O_UTF8 및 _O_UTF16 특성을 지원합니다. 유니코드 형식을 지정하는 "ccs=ENCODING" 메서드를 fopen 함수가 지원합니다. 자세한 내용은 _open, _wopen, fopen, _wfopen 및 fopen_s, _wfopen_s를 참조하십시오.
관리 코드로 빌드한 CRT 라이브러리(MSIL)의 새 버전이 제공되며 /clr(공용 언어 런타임 컴파일) 옵션을 적용하여 컴파일할 때 이를 사용할 수 있습니다. 자세한 내용은 C Run-Time Libraries를 참조하십시오.
_fileinfo가 제거되었습니다.
time_t의 기본 크기가 이제 64비트입니다. 이는 3000년까지만 처리하는 여러 가지 시간 함수와 time_t의 범위를 확장한 것입니다. 시간 관리 및 개별 시간 함수를 참조하십시오.
CRT가 이제 스레드별 로캘 설정을 지원합니다. 이 기능을 지원하기 위해 _configthreadlocale 함수가 추가되었습니다.
x87 및 SSE2 부동 소수점 프로세서에서 부동 소수점 제어 단어에 액세스하고 이를 제어할 수 있도록 _statusfp2 및 __control87_2 함수가 추가되었습니다.
시간(struct tm)을 GMT(그리니치 표준시)로 변환할 수 있도록 _mkgmtime 및 _mkgmtime64 함수가 추가되었습니다.
표준을 더 철저하게 준수할 수 있도록 swprintf 및 vswprintf가 변경되었습니다. 자세한 내용은 sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l을 참조하십시오.
일부 내장 함수에 대한 프로토타입을 제공하는 새 헤더 파일 INTRIN.H가 추가되었습니다.
fopen 함수에 N 특성이 추가되었습니다.
_open 함수에 _O_NOINHERIT 특성이 추가되었습니다.
atoi 함수가 이제 INT_MAX를 반환하고 오버플로 시 errno를 ERANGE로 설정합니다. 이전 버전에서는 오버플로 동작이 정의되지 않았습니다.
printf 함수 패밀리가 서식 유형 지정자 %a 및 %A를 사용하여 ANSI C99 표준에 따라 구현되는 16진수 부동 소수점 출력을 지원합니다. 자세한 내용은 printf 형식 필드 문자를 참조하십시오.
printf 패밀리가 이제 "ll"(long long) 크기 접두사를 지원합니다. 자세한 내용은 Size and Distance Specification을 참조하십시오.
성능을 향상시키기 위해 _controlfp 함수가 최적화되었습니다.
일부 함수의 디버그 버전이 추가되었습니다. 자세한 내용은 _strdup_dbg, _wcsdup_dbg, _tempnam_dbg, _wtempnam_dbg, _getcwd_dbg, _wgetcwd_dbg, _getdcwd_dbg, _wgetdcwd_dbg 및 _fullpath_dbg, _wfullpath_dbg를 참조하십시오.
_chgsignl 및 _cpysignl(long double 버전)이 추가되었습니다.
형식 테이블에 _locale_t 형식이 추가되었습니다.
배열의 요소 수를 계산하기 위한 새 매크로 _countof Macro가 추가되었습니다.
각 함수 항목에서 .NET Framework의 상응하는 부분에 대한 내용이 추가되었습니다.
출력 버퍼가 너무 작은 경우 실패하는 대신 문자열을 잘라내는 옵션이 여러 문자열 함수에 추가되었습니다. _TRUNCATE를 참조하십시오.
_set_se_translator에는 이제 /EHa 컴파일러 옵션을 사용해야 합니다.
/Za를 사용하는 경우(C 코드) 및 __STDC__를 수동으로 설정한 경우(C++ 코드) fpos_t는 이제 __int64입니다. 이는 구조체로 사용됩니다.
_CRT_DISABLE_PERFCRIT_LOCKS를 사용하여 단일 스레드 프로그램의 I/O 성능을 향상시킬 수 있습니다.
ISO C++의 명명 규칙을 준수하기 위해 POSIX 이름이 이제 사용되지 않습니다. 예를 들어, getch 대신 _getch를 사용합니다.
순수 모드에 새로운 링크 옵션 .obj 파일을 사용할 수 있습니다. 자세한 내용은 Link Options을 참조하십시오.