• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

inotify.c. ret 질문

23.07.25 16:23 작성 조회수 141

0

안녕하세요 수강생입니다.

ret -= (sizeof(struct inotify_event) + event->Len) 가 0이 된다는 의미가, ret에 누적된 event가 모두 소거된다는 의미인가요?

답변 1

답변을 작성해보세요.

0

안녕하세요. 정다빈님

read() 함수의 리턴값을 ret에 저장해두었는데요, read()의 리턴값은 양수인 경우 읽어온 바이트 수 입니다.
하나 이상의 이벤트를 읽어왔을 수 있기 때문에 읽어온 모든 데이터를 소진할 때까지(=모든 이벤트를 처리할 때까지) while loop을 도는 것입니다.
이벤트를 하나 처리하고 나서 한 이벤트가 차지하고 있던 바이트수 만큼 빼주는 것이고, while()에서는 ret의 값이 아직 남았는 지를 보고 처리할 것이 더 있는지를 판단하게 되는 것입니다.