• 회사정보
  • 주소: 서울특별시 강남구 강남대로 364, 12층 (역삼동, 미왕빌딩)
  • 대표이사: 서한울
  • 사업자등록번호: 144-81-25784
  • 통신판매업신고: 2017-서울영등포-1695호
  • 이메일: hello@a-ha.io
프로그래밍

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

기본 아바타 정현아빠 2019. 03. 13. 조회수 380


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


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

댓글 0

1개의 답변이 있습니다.

질문자 & 큐레이터 채택
유저 프로필 사진
루에르 답변자인증
설계/프로그램팀 3/13/2019 100%의 채택

안녕하세요~

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

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

댓글 0