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, _wfopenfopen_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 함수가 추가되었습니다.

  • 표준을 더 철저하게 준수할 수 있도록 swprintfvswprintf가 변경되었습니다. 자세한 내용은 sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l을 참조하십시오.

  • 일부 내장 함수에 대한 프로토타입을 제공하는 새 헤더 파일 INTRIN.H가 추가되었습니다.

  • fopen 함수에 N 특성이 추가되었습니다.

  • _open 함수에 _O_NOINHERIT 특성이 추가되었습니다.

  • atoi 함수가 이제 INT_MAX를 반환하고 오버플로 시 errnoERANGE로 설정합니다. 이전 버전에서는 오버플로 동작이 정의되지 않았습니다.

  • 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을 참조하십시오.

  • _recalloc에서 realloccalloc의 기능을 모두 사용할 수 있습니다.

참고 항목

개념

Visual C++ 2005 라이브러리의 변경 사항