Paste
#81426: Untitled C paste by 113.108.133.61
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
#include <termios.h>
#include <stdlib.h>
int main(void){
char input[55]="\0";
FILE *inputs;
FILE *output;
struct termios initial_settings, new_settings;
if (!isatty(fileno(stdout)))
{
fprintf(stderr, "can't open!");
}
inputs = fopen ("/dev/tty", "r");
output = fopen ("/dev/tty", "w");
if (!inputs || !output)
{
fprintf(stderr, "!!!!!" );
exit (1);
}
tcgetattr(fileno(inputs), &initial_settings);
new_settings = initial_settings;
new_settings.c_lflag &= ~ICANON;
/* new_settings.c_lflag &= ~ECHO; */
new_settings.c_cc[VMIN] = 10;
new_settings.c_cc[VTIME] = 10;
new_settings.c_lflag &= ~ISIG;
if (tcsetattr(fileno(stdin), TCSANOW, &new_settings) != 0)
{
exit (12);
}
struct timeval timeout;
timeout.tv_sec=3;
timeout.tv_usec=0;
fd_set rdfds;
FD_ZERO(&rdfds);
FD_SET(0,&rdfds);
int ret=select(1,&rdfds,NULL,NULL,&timeout);
if (ret<0) perror("select");
else if (ret==0) printf("it's timeout!\n");
else { read(0,inputs,55);}
write(1,input,strlen(input));
return 0;
}