아하
생활

생활꿀팁

밝은사자290
밝은사자290

리눅스 gcc로 c언어 프로그램을 컴파일하는데 gets()함수를 쓰지말라고뜨는데

리눅스 gcc로 c언어 프로그램을 컴파일하는데


gets 함수는 위험하고 쓰이면(최근에수동태배웠는데 여기서 보네) 안된다.
라고 영어로 떠요. 저도 이 함수는 왠만하면 쓰지말라고 배웠는데
그래도 컴파일하면서 쓰지 말라고 하는 것은 처음 보네요.이거 어떻게 해결합니까?
머.. 해결못하면 어쩔 수 없고요..
리눅스 vi로 프로그램 작성하고 gcc 컴파일러로 컴파일했습니다.

55글자 더 채워주세요.
1개의 답변이 있어요!
  • 밝은백로285
    밝은백로285

    안녕하세요~

    gets 함수는 get string 문자열을 입력받는 함수입니다.
    이 함수는 중대한 문제점을 가지고 있습니다.
    Buffer overflow(버퍼 오버플로우) 가 발생한다는 것인데요.
    보안상 굉장한 위험을 내포하고 있어 권장하지 않는 함수입니다.

    따라서, gets 함수를 fgets 함수로 변형하여 쓰시면 에러는 안날 것 같네요.
    예를 들어 gets(city) gets(dest)를 아래와 같이 사용 가능합니다.