[Q] 블럭킹 되어 있는 read함수를 리턴하기
글쓴이: blee / 작성시간: 화, 2004/04/27 - 2:13오후
rs232 프로그램중입니다.
초기화에 아래와 같이 open하고..
fd = open(device, O_RDWR|O_NOCTTY );
그리고 thread를 하나 만들고, thread내에서
read함수를 호출하는데요.
:
read(fd,buf,255);
:
이런씩으로 되어 있는데..
근데, 프로그램을 끝낼때, close(fd)를 해 주어도
read함수는 error를 리턴하지 않고 마냥 대기 하네요.
이 녀석이 떨어지게 할려면 어떻게 하지요?
Forums:
상황을 예측하건대.... 메인프로세스에서 fd를 오픈하고 쓰레드에서 fd
상황을 예측하건대.... 메인프로세스에서 fd를 오픈하고 쓰레드에서 fd를 이용하여 read() 함수가 루핑되는 구조인듯 하네요....
이경우 쓰레드의 read() 함수는 항상 blocking 상태로 있다가 시리얼라인으로 데이터가 들어올때만 동작하겠군요....
메인프로세스에서 쓰레드를 중지시키려면 pthread_cancel(thread_id) 함수를 사용해 보시죠.... read() 함수는 "Cancellation Point" 입니다..
담배 고만 펴야겠다...
댓글 달기