STRCPY(3)

명칭
strcpy, strncpy - 캐릭터 라인의 카피

프로그램 라이브러리
libc

서식
<string.h> char * strcpy(char *dst, const char *src) char * strncpy(char *dst, const char *src, size_t len)

해설
strcpy() 함수는, 캐릭터 라인 src (을)를 dst 에 카피합니다 (종단의 ‘\0’ 캐릭터를 포함해).

strncpy() 함수는, len 개이상의 캐릭터는 dst 에 카피하지 않고, src 의 길이가 len 캐릭터 이하의 경우에는 ‘\0’ 캐릭터를 추가합니다. 또, src 의 길이가 len 캐릭터 이상인 경우는, dst 를 종료시키지 않습니다.

반환값
strcpy() 및 strncpy() 함수는, dst (을)를 돌려줍니다.

예
다음의 행은, chararray (을)를 “abc\0\0\0” (으)로 설정합니다 :

    char chararray[6];
    (void) strncpy(chararray, "abc", sizeof(chararray));

다음의 행은, chararray (을)를 “abcdef” (으)로 설정합니다 :

    char chararray[6];
    (void) strncpy(chararray, "abcdefgh", sizeof(chararray));

파라미터의 길이가, 소스의 길이와 같은가 그 이상이기 (위해)때문에 chararray 하 NUL 로 종료하지 않는다 일로 주의해 주세요.

다음의 행은, input (으)로부터 buf 에 캐릭터를 적절히 카피해, 그 결과를 NUL 그리고 종료시킵니다. strncpy() 의 캐릭터 라인 자체가 NUL 그리고 종료하는 것을 프로텍션하지 않기 때문에로, 이것은 명확하게 하지 않으면 안됩니다.

    char buf[1024];
    (void) strncpy(buf, input, sizeof(buf) - 1);
    buf[sizeof(buf) - 1] = '\0';

다음의 예의 같게 strlcpy(3) (을)를 사용하면(자), 보다 좋게 실행할 수 있을지도 모릅니다.

    (void) strlcpy(buf, input, sizeof(buf));

strlcpy(3) (은)는 표준적으로는 정의되어 있지 않기 때문에, 이식에 무관계한 때 만 이용하도록 주의해 주세요.

참조
bcopy(3), memccpy(3), memcpy(3), memmove(3), strlcpy(3)

표준
strcpy() 및 strncpy() 함수는, isoC 에 적합하고 있습니다.