본문 바로가기

프로그래밍./Error 메세지

'gets' function is dangerous and should not be used.

'gets' function is dangerous and should not be used.

gets는 버퍼에 얼마나 값을 저장할지 지정하지 않기 때문에 버퍼오버플로우 기법에 노출된다.
때문에 fgets를 이용해 크기를 지정해서 사용하는 방법을 채택한다.

fgets(char *, int, FILE *)
(저장할 버퍼, 저장할 크기, 읽어들일 대상)

읽어들일 대상에 주로 stdin 을 사용한다.
즉 키보드에서 입력한 값을 읽는다는 의미이다. 키보드에서 읽어서 크기만큼 버퍼에 저장하게 된다.

gets의 경우 과정은 동일하지만 키보드가 기본이자 고정이다.
다른 곳으로부터 읽을 수 없으며. 읽는 크기에 대한 제약이 없다.