어허

select 함수 사용시 주의할 점 ! tv 를 while 문 밖에 쓰면 리셋된다 본문

개발/C(C++)

select 함수 사용시 주의할 점 ! tv 를 while 문 밖에 쓰면 리셋된다

AKDK 2011. 12. 14. 18:55
728x90
select 함수를 사용하여 timeout을 걸고 싶을 때

   
while(1) {
    tv.tv_sec = 1;
    tv.tv_usec = 0;

    state = select(sockfd+1, &readfds, NULL, NULL, &tv);
    switch(state)
    {
        case :
            break;
    }
}

이렇게 while문 안에 써야된다.
tv 스트럭트 내용은 타임 아웃 걸리고 나면리셋 되는건지 안걸리고 select 동작 하면 리셋 되는건지는 모르겠지만
아무튼 !
while문 안에 꼭 쓰자 !
이런 주의사항은 여지껏 socket 관련 내용을 찾아봐도 저거 주의해야한다는 말은 없었다.
뭐,,,당연하다 생각할 수 있지만 나같은 기본이 안된 사람들은 조심해야할 듯 ㅎㅎ

요게 무한루프에 빠지니까 cpu점유율이 98%를 웃돈다
728x90

'개발 > C(C++)' 카테고리의 다른 글

function pointer  (0) 2012.06.20
crc32 코드  (0) 2010.12.07
CRC : CRC-16, CRC-32에 대한 설명과 구현  (0) 2010.11.23
리눅스 c 에서 itoa  (0) 2010.11.16
[socket] bind : error address already in use  (0) 2010.11.05
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
공유하기 링크
Comments