1 #define __STDC_WANT_LIB_EXT1__ 1
2 #include <string.h>
3 #include <stdio.h>
4
5
6 int main(void)
7 {
8 char source[] = "Here we go...";
9 char destination[50];
10
11 if(strcpy_s(destination, sizeof(destination), source))
12 printf("An error occurred copying the string.n");
13
14
15 return 0;
16 }
오류. 이 기술 보고서에 적합성을 나타 내기 위해 의도
__STDC_LIB_EXT1__
정수 상수 200509L :
당신은 당신의 구현으로 지원 여부를 테스트 할 수 있습니다.
(TR에 따름). 부록 K는 단순히 말한다 : __STDC_LIB_EXT1__
을 정의
구현은이 부속서의 사양을 준수하여야한다. __STDC_LIB_EXT1__
를 정의하지 380)
380) 구현은 이러한 사양을 준수 할 필요가 없습니다. 이 answer
는 C 2011 표준에 대한 TC1 (기술 정오표 1) 함수의 부속서 K 버전 __STDC_LIB_EXT1__
가 201112L (2,011 진수)이어야한다는 것을 나타낸다 정의한다. Annex K와 TR 24731-1의 차이점을 추적하지 못했습니다.
__STDC_LIB_EXT1__
을 테스트하여 라이브러리가 strcpy_s()
을 지원하는지 테스트 할 수 있지만 선택 사항입니다. 울리히 드 리퍼 (Ulrich Drepper)는 GNU C 라이브러리가 TR 24731-1 기능을 지원하지 않을 것이라고 분명하게 선언했다. 나는 그것이 아직도 있는지 여부를 모른다.
또한 이러한 기능 중 일부에 대한 Microsoft 인터페이스는 동일한 기능 (예 : vsnprintf_s()
)에 대한 표준 인터페이스와 다릅니다. 이는 플랫폼 간 이식성 도구로서의 유용성을 제한합니다.
http://en.wikibooks.org/wiki/C_Programming/C_Reference/string.h/strcpy 귀하의 (g) libc에서 지원하지 않을 수 있습니다. – yoones