-
Notifications
You must be signed in to change notification settings - Fork 7
stpcpy(3)
Seonghun Lim edited this page Oct 13, 2019
·
5 revisions
stpcpy - 문자열을 복사하고 그 끝에 대한 포인터 반환하기
#include <string.h>
char *stpcpy(char *dest, const char *src);
glibc 기능 확인 매크로 요건 (feature_test_macros(7) 참고):
-
stpcpy()
: -
- glibc 2.10부터:
_POSIX_C_SOURCE >= 200809L
- glibc 2.10 전:
_GNU_SOURCE
stpcpy()
함수는 src
가 가리키는 문자열을 (종료용 널 바이트('\0'
)를 포함해) dest
가 가리키는 배열로 복사한다. 두 문자열이 겹칠 수 없으며 대상 문자열 dest
가 복사를 받아들일 만큼 커야 한다.
stpcpy()
는 문자열 dest
의 시작이 아니라 끝에 대한 포인터를 (즉, 종료용 널 바이트의 주소를) 반환한다.
이 절에서 사용하는 용어들에 대한 설명은 attributes(7)를 보라.
인터페이스 | 속성 | 값 |
---|---|---|
stpcpy() |
스레드 안전성 | MT-Safe |
이 함수는 POSIX.1-2008에 추가되었다. 그 전에는 C나 POSIX.1 표준의 일부가 아니었고 유닉스 시스템에 통상 있는 것도 아니었다. 처음 등장한 것은 늦어도 1986년에 Lattice C Amiga-DOS 컴파일러에서였으며, 이후 1989년에 GNU fileutils와 GNU textutils에, 그리고 1992년에 GNU C 라이브러리에 등장했다. BSD 계열에도 있다.
이 함수는 버퍼 dest
를 넘치게 할 수 있다.
예를 들어 이 프로그램은 stpcpy()
으로 foo와 bar를 이어 붙여서 foobar를 만들어 낸 다음 출력한다.
#define _GNU_SOURCE
#include <string.h>
#include <stdio.h>
int
main(void)
{
char buffer[20];
char *to = buffer;
to = stpcpy(to, "foo");
to = stpcpy(to, "bar");
printf("%s\n", buffer);
}
bcopy(3)
, memccpy(3), memcpy(3)
, memmove(3)
, stpncpy(3), strcpy(3)
, string(3), wcpcpy(3)
2019-03-06