좀 알려주세요~
글쓴이: ybagnes / 작성시간: 화, 2003/06/03 - 4:12오후
gcc hw3.c -o text
이런식으로 컴파일 하면요~
/tmp/ccOOjIqK.o: In function `parseCommandLine':
/tmp/ccOOjIqK.o(.text+0x4ab): the `gets' function is dangerous and should not be
used.
라고 에러가 떠요.ㅜㅜ
코드는 이렇게 생겼거든요
parseCommandLine(int argc, char* argv[]) { /* 중략 */ char contents[20]; /* 중략*/ while(quit == 0) { scanf("%c", &com); switch (com) { /* ...중략... */ case 'A': scanf("%d", &number); gets(contents); append(--number, contents); break; } } }
중간에는 생략했고요~ content[20] 이라고 공간 배정도 해줬는데..
어떻게 해야 에러가 없어지나요?
Forums:
gets() 함수는 man page 확인해 보시고요fgets()
gets() 함수는 man page 확인해 보시고요
fgets() 함수로 바꿔서 사용하세요...
from saibi
위의 함수는 위험한 함수라더군요.아마도 버퍼 오버플로우 공격을 당할수
위의 함수는 위험한 함수라더군요.
아마도 버퍼 오버플로우 공격을 당할수 있기 때문에 그런 메시지가
나오지 않았나 싶군요.
man gets
인용 뒤에 인용한곳은 어떻게 적나요 ㅡㅡ; 못적겠다
그나저나 백수 언제 탈출하냐... ㅡㅡ; 배고파라.
[b]오류[/b]가 아니라 [b]경고[/b]입니다.ㅡ_-) get
오류가 아니라 경고입니다.
ㅡ_-) gets 함수는 윗분이 말씀하신 것처럼
버퍼오버플로우 약점을 가질 수 있기 때문에
컴파일 수준에서 경고를 내는 것입니다.
그냥 스따디~ 목적으로 만든 소스라면
gets 쓰셔도 무방합니다.
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
댓글 달기