강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của db8jeong5579
db8jeong5579

câu hỏi đã được viết

Lập trình hệ thống Linux - Lý thuyết và thực hành

Sự kiện tệp - Lập trình trực tiếp

inotify.c. ret 질문

Viết

·

292

0

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

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

linux

Câu trả lời 1

0

learnit님의 프로필 이미지
learnit
Người chia sẻ kiến thức

안녕하세요. 정다빈님

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

Hình ảnh hồ sơ của db8jeong5579
db8jeong5579

câu hỏi đã được viết

Đặt câu hỏi