#include <sys/select.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define BUFLEN 1000
int main(int,char**)
{
fd_set rfds;
struct timeval tv;
int retval;
char buf[BUFLEN];
FD_ZERO(&rfds);
FD_SET(STDIN_FILENO, &rfds);
tv.tv_sec = 5;
tv.tv_usec = 0;
while(1) {
retval = select(STDIN_FILENO + 1, &rfds, NULL, NULL, &tv);
if (FD_ISSET(STDIN_FILENO, &rfds)) {
if (fgets(buf,BUFLEN, stdin)) {
printf("%d %s\n",__LINE__ ,buf);
if (strncmp(buf, "exit", 4) == 0)
exit(0);
}
printf("\nEnter command: ");
}
}
return 0;
}
I2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CgojZGVmaW5lIEJVRkxFTiAxMDAwCgppbnQgbWFpbihpbnQsY2hhcioqKQp7CiAgZmRfc2V0IHJmZHM7CiAgc3RydWN0IHRpbWV2YWwgdHY7CiAgaW50IHJldHZhbDsKICBjaGFyIGJ1ZltCVUZMRU5dOwogIEZEX1pFUk8oJnJmZHMpOwogIEZEX1NFVChTVERJTl9GSUxFTk8sICZyZmRzKTsKICB0di50dl9zZWMgPSA1OwogIHR2LnR2X3VzZWMgPSAwOwogIHdoaWxlKDEpIHsKICAgICAgcmV0dmFsID0gc2VsZWN0KFNURElOX0ZJTEVOTyArIDEsICZyZmRzLCBOVUxMLCBOVUxMLCAmdHYpOwogICAgICBpZiAoRkRfSVNTRVQoU1RESU5fRklMRU5PLCAmcmZkcykpIHsKICAgICAgICAgIGlmIChmZ2V0cyhidWYsQlVGTEVOLCBzdGRpbikpIHsKICAgICAgICAgICAgICAgIHByaW50ZigiJWQgJXNcbiIsX19MSU5FX18gLGJ1Zik7CiAgICAgICAgICAgIGlmIChzdHJuY21wKGJ1ZiwgImV4aXQiLCA0KSA9PSAwKQogICAgICAgICAgICAgICAgICBleGl0KDApOwogICAgICAgICAgIH0KICAgICAgICAgICBwcmludGYoIlxuRW50ZXIgY29tbWFuZDogIik7CiAgICAgIH0KICB9CiAgcmV0dXJuIDA7Cn0K