2017-12-01 13 views
0

서버로서, 비 블로킹 클라이언트 소켓에서 읽은 다음 파일에 쓰려고합니다.sendfile은 입력 설명자를 읽는 것이 차단되는지 확인하지 않는 이유는 무엇입니까?

sendfile의 man 페이지에 따르면, errno가 EAGAIN으로 설정된 경우 출력 파일 설명자가 비 블로킹으로 설정된 경우 sendfile을 호출하면 차단된다는 신호 만 나타납니다.

즉, sendfile이 작성하는 기본 호출이 차단됩니다.

독서가 차단되면 errno가 EAGAIN이되도록 sendfile을 사용하고 있습니까?

답변

2

물론입니다.

select() 라이브러리 설명을 읽기 설명 자로 사용하면 을 errno을 통해 확인할 수 있습니다. 설정되면 읽기가 차단됩니다.

sendfile() 호출에서 내용을 확인하여 읽음이 차단되는지 확인할 수 없습니다.