At 12:29 PM 4/19/2004, you wrote: >Hello, > >I want to use (Windows-) COM port numbers greater >than 16, but when I use open() to get a file >descriptor for the devices I get the behaviour: > >---1.case----------------------------------------- > >errno = 0; >fd = open("/dev/com8", O_RDWR | O_NONBLOCK); >-> fd = 3, errno = 0 >-> everything is OK, > I can use the opened COM port > >---2.case----------------------------------------- > >errno = 0; >fd = open("\\.\com8", O_RDWR | O_NONBLOCK);
^^^^^^^^^ You didn't escape the backslashes. "//./com8" should work too. >-> fd = 3, errno = 20 = ERROR_BAD_UNIT > = "The system cannot find the device specified" >-> I can not use the opened COM port. The port > number 1...16 versus 17...255 does NOT matter. > >---3.case----------------------------------------- > >errno = 0; >fd = open("/dev/com23", O_RDWR | O_NONBLOCK); > >-> fd = -1, errno = 2 = ERROR_FILE_NOT_FOUND > = "The system cannot find the file specified" >-> I can not use the opened COM port. The port > number 1...16 (OK) 17...255 (not OK) DOES matter. Right. Cygwin only maps the first 16 com ports to this POSIX syntax. The Win32 syntax as amended above should work for you though. -- Larry Hall http://www.rfk.com RFK Partners, Inc. (508) 893-9779 - RFK Office 838 Washington Street (508) 893-9889 - FAX Holliston, MA 01746 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/