termios raw question

Jennifer Averett jennifer.averett at oarcorp.com
Wed Feb 15 00:03:13 UTC 2006


I'm trying to use termios for reading/writing a raw data stream.
I am using tcgetattr to get the attributes then setting:

  termios_attr.c_iflag &= ~(IXON|IXANY|IXOFF);
  termios_attr.c_oflag &= ~OPOST;
  termios_attr.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
  termios_attr.c_cflag = CREAD;
  termios_attr.c_cflag &= ~(CSIZE|PARENB);

  Setting Baud rate in c_cflag based upon a table value
  Setting bits per charachter in c_cflag based upon a table value
  Setting parity in c_cflag based upon a table value
  Setting number in c_cflag of stop bits based upon a table value
  Settiing flow control in c_iflag based upon a table value

Then I use tcsetattr to set the attribute.  I found a problem where 0xd
was being changed to a 0xa with this code and replaced the first c_iflag
setting with:

  termios_attr.c_iflag &= ~(IXON|IXANY|IXOFF|ICRNL);

However this causes a queue overflow when reading the device.  Does anyone
know if clearing ICRNL, would have the effect of hoarding input characters
and if so how to keep this from happening?  Any other suggestions would be
appreciated.

Jennifer



More information about the users mailing list