On 09/27/2006, ahnkle wrote:
On 18:36 Wed 27 Sep , Igor Peshansky wrote:
> >
> > #define PORT "com1"
> > ...
> > fd = open(PORT, O_RDWR | O_NOCTTY );
> >
> > There's your problem. When you open a port as "com1", it looks like a
> > file to Cygwin, since it doesn't recognize it as a valid device name.
> > Thus any attempt to manipulate that fd as a device will fail.
> >
> > Use the Cygwin device (e.g., "/dev/ttyS0").
Strangely, com1 *does* work in the call to open. Having tried "/dev/ttyS0",
tcgetattr() works ok.
I also note that read() and write() work ok too using "com1", but
tcsetattr() also fails.
"/dev/ttyS0" is an emulated device in Cygwin. "com1" is a DOS/Windows device.
If you want POSIX behavior from a device, use the Cygwin emulated device.
Otherwise, you're stuck with DOS/Windows devices and their semantics. That's
why "/dev/ttyS0" exists. There's no magic here. And there certainly isn't
any bug.
--
Larry Hall http://www.rfk.com
RFK Partners, Inc. (508) 893-9779 - RFK Office
216 Dalton Rd. (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/