Opening COM2

Geoffrey Noer noer@cygnus.com
Mon Apr 7 15:27:00 GMT 1997


Bob Wilson wrote:
> 
> I have a program which ran correctly when compiled on a gnu-win32
> package from about a year ago, but is failing when compiled with 17.1
> beta.  The machine is running NT 3.51 and COM2 is connected to a
> microprocessor with only td, rd and ground connected.  The open:
> 
>         if ((comfd = open("com2", O_RDWR | O_TEXT)) <= 0) {
>             fprintf(stderr, "Cmd: Unable to open terminal\n");
>             exit(1);
>         }
> 
> hangs.

This should be fixed in beta 18.  I encountered similar problems trying to
talk to a serial port in a cygwin32-based gdb a little while ago.  The
solution was to rewrite some of the fhandler.cc code in the cygwin.dll
such that the classes make a little more sense.

The bottom line is that fhandler_base::open should not be checking
symlink/executable status of files, instead that code should be in
fhandler_disk_file::open which also does everything that
fhandler_base::open does.  Opening a com port is a fhandler_tty::open which
just defaults to the fhandler_base::open behavior.  This did the trick
for me.

-- 
Geoffrey Noer
noer@cygnus.com
-
For help on using this list, send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".



More information about the Cygwin mailing list