시리얼 프로그램 질문..!!
글쓴이: vilinux / 작성시간: 월, 2004/06/28 - 2:37오후
newtio.c_cc[VTIME] = 0; /* 문자 사이의 timer를 disable */ newtio.c_cc[VMIN] = 5; /* 최소 5 문자 받을 때까진 blocking */ tcflush(fd, TCIFLUSH); tcsetattr(fd,TCSANOW,&newtio); while (STOP==FALSE) { /* loop for input */ res = read(fd,buf,255); /* 최소 5 문자를 받으면 리턴 */ buf[res]=0; /* '\0' 종료 문자열(printf를 하기 위해) */ printf(":%s:%d\n", buf, res); if (buf[0]=='z') STOP=TRUE; } tcsetattr(fd,TCSANOW,&oldtio); }
최소 5 문자 받을 때까진 blocking 한다고 되어있는데...
타임아웃을 걸어서 break 를 걸어서 빠져 나갈려면 VTIME를 쓰면
되는건지요 궁금합니다.
newtio.c_cc[VTIME] = 10; // timeout TIME*0.1
newtio.c_cc[VMIN] = 1; // 최소 n 문자 받을 때까진 blocking
이렇게 쓰면 0.1초 후에 1문자가 안들어오면 빠져나가나요?
시리얼쪽 타임 아웃 만든 예제 있으면 좀 올려주세요 .....
부탁합니다.^^
Forums:
확실하지는 않지만
제 기억엔 TIME 은 inter-character 타임 아웃으로 알고 있습니다.
님이 원하시는 timeout과는 무관한 것입니다.
5문자를 받을때까지 block이 되기때문에 어느정도 시간을 주고 그 시간까지
5문자를 못받았을경우 timeout을 통해 빠져나가고 싶은것 같은데요
그건 님이 따로 구현을 하여야될듯 싶은데요...
read 함수를 timeout 될 수 있게 구현하면 되겠네요
즐프요.~
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
Re: 확실하지는 않지만
inter-character 가 무슨말이죵??
말그대로...
inter-character란 말 그대로.. character와 character 사이를 말하는 것입니다.
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
댓글 달기