fgets 에서 프로그램이 진행 안됄때.

Dev 2011. 9. 25. 20:03


어처구니 없는 실수...
Linux에 간단한 게임 서버를 공부삼아 꾸며 봐야겠다는 생각에 일단 테스트로 에코 서버/클라이언트를 작성해 보았는데 이상하게 프로그램이 프리징 된듯하게 진행이 안돼는 것이였다.
분명 대학교때 사용하던 책이었고 작성해 봤었던 간단한 프로그램이였는데 왜 안돼는지 정말 답답 했었다.
리눅스여서 뭔가 다른가? 하고 눈을 씻고 여기저기 구석구석 찾아 보았다.

원인은....

문자열을 입력 받기 위한 fgets 함수에 있었다.

fgets(message, BUFSIZE, stdin);

이것을

fgets(message, strlen(message), stdin);

이렇게 잠결에 아랫줄과 혼돈하여 넣은것이다.
잠결에 코드 작성하지 말자.

그런데, 프로그램이 아예 뻑나거나... 그러질 않고 가만히 멈추어 있는 뭐지? ㅋㅋ
리눅스(gcc 라고 해야하나?)상에서 디버깅 기술이 전혀 없어서 그런듯 하다.
시간 날때 꼭 디버깅에 대해 정리해보고 공부해야겠다.

해당 함수의 레퍼런스 링크 : http://www.cplusplus.com/reference/clibrary/cstdio/fgets/
: