/*
 select.c
*/

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/timeb.h>

#define BUFSIZE 30

int main(int argc, char * argv)
{
 fd_set reads, temps;
 int result;

 char message[BUFSIZE];
 int str_len;
 struct timeval timeout;

 FD_ZERO(&reads);
 FD_SET(0, &reads);
/*
 timeout.tv_sec = 5;
 timeout.tv_usec = 100000;
*/
 while( true )
 {
  temps = reads;
  timeout.tv_sec = 5;
  timeout.tv_usec = 0;

  result = select(1, &temps, 0, 0, &timeout);
 
  if( result == -1 )
  {
   puts("select 오류 발생");
   exit(1);
  }
  else if( result == 0 )
  {
   puts("시간이 초과되었습니다 : sekect");
  }
  else
  {
   if( FD_ISSET(0, &temps) )
   {
    str_len = read(0, message, BUFSIZE);
    message[str_len] = 0;
    fputs(message, stdout);
   }
  }
 }
}

+ Recent posts