| [ CnUnix ] in KIDS 글 쓴 이(By): HellCat (Nobody) 날 짜 (Date): 2003년 4월 16일 수요일 오후 12시 50분 43초 제 목(Title): Re: [Q] Broken pipe. 음..이거 어떻게 설명을 해야 할까 좀 그런데요. 여러가지 방법이 있는데요... 일단 서버가 만약 accept 하고 나서 fork() 를 한다던지 하면 child 에서 SIGPIPE 핸들러에선 뭐 별로 할일 없으니 그냥 error exit 해도 될테고..만약 뭐 다른 일을 더 해야 한다면 handler 안에서 global flag set 해주고 system call error return 시에 errno 하고 global flag 체크 해서 연결 짤린 socket cleanup 해줘도 되고. 또 시그날도 sigaction 으로 system call 시에 핸들러만 사용하고 에러리턴 하지 않게 해주면 또 방법이 조금 달라지고. 하여간 서버 디자인이랑 에러리턴시에 해야 할 일에 따라 방법이 참 많은데요. 좀 무식한 방법이지만 아예 SIGPIPE 무시하게 해서도 할수는 있는데요.. 써놓고 보니 별 도움 안되는 소리만 나열 한것 같은데, 이런거 스티븐스아저씨 책에 나올텐데... |