프로그래밍/문제해결

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

K_Coder 2012. 2. 4. 19:51

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

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

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

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

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