> Hi !
> I have a problem with reading from a serial port using select() under
> 2.4.5. What I am doing is basically the following:
> fd_set readfds;
> struct timeval timeout;
> int s;
> serialfd = open("/dev/ttyS0", O_RDWR );
> timeout.tv_sec = 2; /* ! */
> timeout.tv_usec = 0;
> s=select(serialfd+1, &readfds, NULL, NULL, &timeout);
> But s is always equal to 0 even when I am sure there are data to read.
> If I use
> s=select(serialfd+1, NULL, &writefds, NULL, &timeout);
> (with the corresponding initialisation of writefds) it returns s=1 and I
> can write to the serial port. I can see that since the lights of the modem
> are flashing.
> I noticed that behavior since I tried to send some "ATZ" with the
> write-function but I never got the "OK" back.
> However, the same programme works under 2.2.19.
Probably I should have given the init_serial() as well; So here it is:
(it is basically the one from the serial-programming-howto)
int init_serial(tcflag_t baud)
struct termios tio;
tio.c_cflag = baud | CLOCAL;
tio.c_iflag = IGNPAR;
tio.c_oflag = 0;
tio.c_lflag = 0;
tio.c_cc[VTIME] = 0;
tio.c_cc[VMIN] = 1;
Thank you for any help
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to email@example.com More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/