I am trying to control a serial device that uses DCD to indicate an
internal status independent of the serial trafic through the port. I
also must handle stdin, stdout and multiple sockets so I am using the
select function. This all works fine. However, now I want to add the
detection of changes in Carrier Detect to the mix and I am having
problems because of the lack of documentation.
I have removed 'CLOCAL' from my setup and added an appropriate bit array
to the 'exception' parameter in the select statement. When DCD changes
the select reports it just fine but then reports it and reports it and
So, How do I tell the system that I am acknowledgeing the change and
have it wait for the next change? I have searched the source of serial.c
and have found where the change is reported but I can't determine why I
am receiving continious exception reports.
Another thing I noticed is that when the DCD exception is reported I
also get a report on the serial input having characters available. When
read they always turn out to be 0x00, 0xef. My device isn't sending
them:-( Where are they coming from?
Adaptive Systems, Ltd.