Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>
<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=gets">gets</a>(3)

1장. gets(3)

차례
1.1절. 사용법
1.2절. 설명
1.3절. 반환값
1.4절. 예제

문자열을 입력받는다.


1.1절. 사용법

#include <stdio.h>

char *gets(char *s);
		


1.2절. 설명

표준입력(stdin)로 부터 개행문자나 EOF로 끝나는 라인을 입력받아서 s가 가르키는 버퍼에 저장하고 마지막을 '\0' 으로 변경한다. 그러나 버퍼 오버플로우에 대한 검사를 하지 않음으로, 보안 문제를 발생시킬수 있다.

이러한 버퍼오버플로우 문제 때문에 gets 대신 fgets(3) 을 사용 할것을 권장한다.

그리고 입력받은 문자에서 개행문자는 제거된다.


1.3절. 반환값

성공했을경우 문자열의 포인터 s를 반환한다. 그리고 에러가 발생했을경우나 파일의 마지막에 도달했을경우, 혹은 아무문자도 입력받지 않았을경우 NULL 을 반환한다.


1.4절. 예제

#include <stdio.h>

#include <string.h>

int main()
{
    char name[24];
    gets(name);
    printf("your name is %s\n", name);
    return 1;
}
		
위의 프로그램을 gcc 를 이용해서 컴파일 할경우 다음과 같은 경고 메시지를 출력할것이다.
/tmp/ccogvmkp.o: In function `main':
/tmp/ccogvmkp.o(.text+0x18): the `gets' function is dangerous and should not be used.
		
한마디로 gets 는 쓰지말라.