2014-01-06 2 views
-4

return 0(or -1)는 리눅스에서 C로 소켓을 쓰거나 읽을 때의 의미는 무엇입니까?소켓을 쓸 때 리턴 0은 무엇을 의미합니까?

그리고 어떤 상황에서 이러한 일이 발생합니까?

및 처리 방법 errno==EINTR?

write() and read() 기능을 사용합니다.

+3

함수에 대한 설명 읽기 ... – deviantfan

+5

이 질문은 이전 조사의 증거가 없으므로 이미 기존 문서에서 답변을 받았기 때문에 주제와 관련이 없습니다. – EJP

+0

나는 그/그녀가 지금 응답을 가지고 있다고 생각한다. .. 어떤 downvotes의 부담과 더불어. – Liviu

답변

2
  1. 0은 연결이 닫혔다는 것을 의미합니다 (EOF).
  2. < 0은 오류입니다 (자세한 내용은 errno를 확인하십시오).
  3. > 0은 읽거나 쓰는 바이트를 의미합니다.

EINTR이 발생하면 대개 무시하고 계속 읽을 수 있습니다.

+0

일반적으로 무시 하시겠습니까? – Liviu

+1

싱글 핸들러를 사용하는 경우 (코드에 따라) 무언가를하고 싶을 수도 있지만 일반적으로 무시할 수 있습니다. 나는. 타이머가 있거나 기다림, 종료 등을 방해하고 싶다면 – Devolus

+0

고맙습니다. – cola

1

EINTR은 신호가 신호에 의해 인터럽트되었음을 ​​나타냅니다. 이를 무시하고 읽기/쓰기를 계속할 수 있습니다. 더 많은 정보를 찾을 수 있습니다 Here.

관련 문제