X-Git-Url: https://git.realraum.at/?p=svn42.git;a=blobdiff_plain;f=dart%2Fttyread.c;h=aad4e7af5aa28bbeba6b2b328894a1769b0a5e4d;hp=beb88561a1328456179d4971cfe93ecbe4b22044;hb=ed56aa9dd776a4eb9928895f84a6f8a3276eba84;hpb=b0f2556e0f18f6ded6a2b72bfda99b97023dfee6 diff --git a/dart/ttyread.c b/dart/ttyread.c index beb8856..aad4e7a 100644 --- a/dart/ttyread.c +++ b/dart/ttyread.c @@ -105,8 +105,23 @@ int main(int argc, char* argv[]) if(setup_tty(fd)) return 3; + fd_set rfds, efds; + char buf[100]; for(;;) { + FD_ZERO(&rfds); + FD_SET(fd, &rfds); + FD_ZERO(&efds); + FD_SET(1, &efds); + + int s = select(fd+1, &rfds, NULL, &efds, NULL); + if(s < 0) { + perror("select()"); + return s; + } + if(FD_ISSET(1, &efds)) return 0; + if(!FD_ISSET(fd, &rfds)) continue; + ssize_t r = read(fd, buf, sizeof(buf)); if(r <= 0) { perror("read()");