/*
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);
}
}
}
}