문자열을 입력받는다.
#include <stdio.h> char *gets(char *s);
표준입력(stdin)로 부터 개행문자나 EOF로 끝나는 라인을 입력받아서 s가 가르키는 버퍼에 저장하고 마지막을 '\0' 으로 변경한다. 그러나 버퍼 오버플로우에 대한 검사를 하지 않음으로, 보안 문제를 발생시킬수 있다.
이러한 버퍼오버플로우 문제 때문에 gets 대신 fgets(3) 을 사용 할것을 권장한다.
그리고 입력받은 문자에서 개행문자는 제거된다.
성공했을경우 문자열의 포인터 s를 반환한다. 그리고 에러가 발생했을경우나 파일의 마지막에 도달했을경우, 혹은 아무문자도 입력받지 않았을경우 NULL 을 반환한다.
#include <stdio.h> #include <string.h> int main() { char name[24]; gets(name); printf("your name is %s\n", name); return 1; }
/tmp/ccogvmkp.o: In function `main': /tmp/ccogvmkp.o(.text+0x18): the `gets' function is dangerous and should not be used.
Copyrights © - Joinc, All Rights Reserved. Inherited From - Yundream Rebranded By - Joonphil
1장. gets(3)
문자열을 입력받는다.
1.1절. 사용법
1.2절. 설명
표준입력(stdin)로 부터 개행문자나 EOF로 끝나는 라인을 입력받아서 s가 가르키는 버퍼에 저장하고 마지막을 '\0' 으로 변경한다. 그러나 버퍼 오버플로우에 대한 검사를 하지 않음으로, 보안 문제를 발생시킬수 있다.
이러한 버퍼오버플로우 문제 때문에 gets 대신 fgets(3) 을 사용 할것을 권장한다.
그리고 입력받은 문자에서 개행문자는 제거된다.
1.3절. 반환값
성공했을경우 문자열의 포인터 s를 반환한다. 그리고 에러가 발생했을경우나 파일의 마지막에 도달했을경우, 혹은 아무문자도 입력받지 않았을경우 NULL 을 반환한다.
1.4절. 예제
Recent Posts
Archive Posts
Tags