본문 바로가기

Projects/CoVNC

strdup()함수

사용법

#include <string.h>

char *strdup(const char *s);

설명

strdup() 함수는 문자 s를 복사하고 복사된 문자열을 가리키는 포인터를 반환한다. 문자를 복사할 공간을 확보하기 위해서 내부적으로 malloc()이 호출된다. 그러므로 strdup() 함수를 호출해서 문자열 복사를 했다면 free() 등을 통해서 공간이 필요없게 되었을때 커널에 되돌려주어야 한다.

반환값

복사된 문자열의 주소를 가리키는 포인터를 반환한다. 에러발생시에는 NULL 을 되돌려준다.

에러

ENOMEM

복사할 문자열을 할당하기 위해 이용할수 있는 메모리가 충분하지 않다.

예제

#include <string.h>

int main()
{
       char *line = "hello world!";
       char *dupstr = NULL;
     
       dupstr = strdup (line);
       printf("%s\n", dupstr);
      
free(dupstr);
}