--- 원본 메세지 ---
overflow 나 underflow 때 발생합니다.
버퍼나 포인터 처리에 관한 부분을 잘 봐보시기 바랍니다.
:
: 안녕하세요....
:
: 책에 서버대 클라이언트의
:
: 간단한 3목 이라는 게임이 있더군요...
:
: 똑같이 따라하고.
:
: 했는데 아주 잘 되요....
:
: 그래서 제가 요기 조기 바꿔서
:
: 채팅 프로그램 만들어서 에러 없이
:
: 컴파일하고. 프로그램 돌려봤는데...
:
: 시작은 좋았는데.....
:
: 클라이언트에서 서버로 접속을 하면 segementation fault 라면서
:
: 접속이 됐다가 끊어지네요....
:
: 제가 책이랑 다르게 고친부분은
:
: 2문자 교환에서 10문자 교환으로
:
: 바꾼거 밖에 없거든요....
:
: 예를 들어 read(soc, data, 2); -- soc는 파일디스크립터이고 data는 char data[10]; 으로 초기화했습
: 니다.--
: 에서 2를 10으로 말이죠....
:
: segementation fault 에러라고 하면 보통 어디서 나는 에러 인가요?
:
: 감이 안와서요...
--
frm Maximus
--- 이제 질문이에요 ---
저가 위에 글로 물어봤더니 오버 플로우나 언더 플로우가 발생해서
그런거라구 답변을 주셨는데
오버플로우를 제가 알기에는
char data[10];
for(int i=0; i<100; i++)
data[i]='x';
이런 걸로 알고 있거든요....
근데 제가 쓴 소스에는 이런게 없거든요....
문제는 해결했지만.
이런 곳에서 문제였습니다.
char data[10];
gets(data);
for(int i=0; i<10; i++)
put(data[i]);
(위부분은 입력을 받고 출력을 하는 건데 클라이언트나 서버에서 같은 소스를 사용합니다.
) 정상적으로 컴파일 되요 아주 잘 되죠...
근데 서버 돌리고... 다음으로 클라이언트에서 접속하면
segmentation fault 라네요...
왜 그런거죠? 이유를 모르겠습니다. 오버나 언더플로우 같지 않은데