| 18 | int line = 0; |
| 19 | |
| 20 | void main_loop() { |
| 21 | char str[10] = {0}; |
| 22 | int ret; |
| 23 | |
| 24 | errno = 0; |
| 25 | while (errno != EAGAIN) { |
| 26 | if (line == 0) { |
| 27 | ret = fgetc(stdin); |
| 28 | if (ret != EOF) putc(ret, stdout); |
| 29 | if (ret == '\n') line++; |
| 30 | } else if (line > 0) { |
| 31 | ret = scanf("%9s", str); |
| 32 | if (ret > 0) puts(str); |
| 33 | } |
| 34 | |
| 35 | int err = ferror(stdin); |
| 36 | if (err && errno != EAGAIN) { |
| 37 | printf("error %s\n", strerror(errno)); |
| 38 | exit(EXIT_FAILURE); |
| 39 | } |
| 40 | |
| 41 | if (feof(stdin)) { |
| 42 | puts("eof"); |
| 43 | exit(EXIT_SUCCESS); |
| 44 | } |
| 45 | |
| 46 | clearerr(stdin); |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | int main(int argc, char const *argv[]) { |
| 51 | fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK); |