글쎄 .. 내 errno 변수를 검사 할 때 "Illegal Seek"오류가 발생하는 것 같습니다. 문제는 그게 무슨 뜻인지 전혀 모른다는 것입니다.accept()를 호출 한 후 "Illegal Seek"오류가 발생합니다.
나는 소켓이 유닉스에서 파일처럼 다루어진다는 것을 알고있다. 그러나 이것이 어떻게 소켓과 관련 될 수 있는지 나는 알 수 없다. 내가 정확히하고 있어요 것은 :
int sck = ::accept(m_socket, (struct sockaddr*)&client_address, (socklen_t*)&address_len);
은 그 때 나는
SCK = -1 및
의 errno = ESPIPE
을 얻을 그리고 이상한 점은 무작위로 발생한다는 것입니다. 내 말은, 때로는 코드가 제대로 작동하고 때로는 예외가 발생하기도합니다. 이해할 수 있도록 스레드로 작업하고 있습니다. 그러나 나는 단지 어떤 종류의 동작이 ESPIPE로 errno를 설정하도록 accept() 호출을하는지 알고 싶습니다. 그래서 매개 변수를 검사 할 수 있습니다.
감사 넬슨 R. 페레즈
실행 파일에'strace'를 실행 해 보셨습니까? 'accept '가 실패하는 방식을보다 명확하게 볼 수 있습니다. 'man' 페이지에는'ESPIPE'에 관한 내용이 없습니다. –