gets

위키백과, 우리 모두의 백과사전.

gets표준 입력에서 줄을 읽고 호출에 의해 버퍼로 불러와 저장하는 C 표준 라이브러리의 기능으로 헤더 파일stdio.h에 선언되어 있다.

이행[편집]

그것은 (getchar를 사용하여) 다음과 같이 구현할 수 있다:

char *
gets (char *s)
{
    char * ch = s;
    int k;

    /* 줄 바꿈을 읽기 전 */
    while ((k = getchar ()) != '\n') {

        if (k == EOF) {
            /* EOF 줄의 시작이나 다른 EOF 보다 오류이면 NULL을 반환 */
            if (ch == s || !feof(stdin))
                return NULL;

            break;
        }

        /* 문자는 주소에 저장되고, 포인터는 증가 */
        *ch++ = k;
    }

    /* 줄 바꿈을 기각하고 Null-종료 문자를 추가 */
    *ch = '\0';

    /* 원래의 포인터를 반환 */
    return s;
}

안전한 사용[편집]

프로그래머에 있어서 gets의 안전한 사용을 하기 위해 버퍼 오버플로우를 확인하는 것이 문제가 되지 않는다.