inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

리눅스 시스템 프로그래밍 - 이론과 실습

파일 이벤트 - 라이브 프로그래밍

read/blocking

해결된 질문

568

lalala

작성한 질문수 5

0

read()는 한개의 event만 발생해도 blocking에서 빠져나오지 않나요?? while(ret>0)안에서 여러개의 event를 출력하는 경우가 생기나요?

linux

답변 1

0

런잇(ProgCoach4U)

안녕하세요. lalala님

네. 말씀하신 대로 하나의 이벤트가 발생해도 read()에서 해당 이벤트를 읽어옵니다. 그런데 짧은 기간 동안 여러 이벤트가 발생했는데, 운영체제가 이 프로세스를 충분히 스케쥴링하지 못하는 이벤트가 쌓여있는 상태로 block된 read()를 깨우게 됩니다. 즉, 버퍼에 읽어올 데이터(=이벤트)가 많은 상태인 것이죠. 그렇기 때문에 while()을 돌면서 발생한 이벤트를 읽어오게 됩니다. 이런 일이 잘 발생하지 않을 수도 있지만 상황에 따라 종종 발생하게 됩니다. 그래서 반드시 while()로 돌며 발생한 이벤트를 모두 읽어오도록 프로그램을 작성해야 합니다.

잘 이해되셨길 바라겠습니다. 추가 질문 있으시면 댓글로 남겨주세요~

inotify 객체에 등록된 watch descriptor 해제 관련 질문

0

40

2

select API 실습 코드 질문

0

42

2

wsl에서 fcntl사용

0

75

2

inotify_event 구조체 질문 [파일 이벤트 - 라이브 프로그래밍]에서...

0

182

2

./stat 파일이름

0

275

2

fopen r, r+모드 차이

0

461

2

강의를 모두 수강하고 스스로 구현하면 좋을 과제나 프로젝트 주제가 있을까요?

0

329

1

pthread 질문

0

421

2

I/O Multiplexing(select) 질문

0

327

1

inotify.c. ret 질문

0

304

1

inotify.c 질의합니다.

1

319

1

child process

0

717

1

flock

0

567

1

system call

0

600

1

pthread_create() 함수 이용했을 때, thread가 두번 호출되는 것 처럼 나타납니다. 왜 그런것인가요?

0

488

1

fork() 함수 사용시 결과 관련 질문

0

373

1

exec 관련 궁금한 사항

0

452

2

파일 디스크립터와 FILE 구조체에 대한 질문

0

557

1

buf 선언에 따른 read() fail 문제

0

253

2

파일 이벤트 - 라이브 프로그래밍 에서 캐스팅 질문

0

256

1

2번 multi thread 방법 질문

0

244

1

segmentation fault 발생 관련 문의

1

843

1

라이브 코딩 실습 코드

0

237

1

화면이 짤려요

0

552

4