printf goes to serial port?

Bob van Loosen loosen@xs4all.nl
Sun Jan 4 19:22:00 GMT 2009


Hi, I was pointed to this discussion at the archives: 
http://www.cygwin.com/ml/cygwin/2008-12/msg00489.html

I have a similar problem with my app, all printf statements go out the 
serial port.
The problem is, I'm using the -mwindows flag to get a sort of "real" 
windows app, so no console output.
Because of this, the app doesn't get the standard file descriptors for 
stdin, stdout and stderr, also when you open a file the file descriptors 
start at 0.

So what happens is, my app opens a config file, which then becomes 
stdin, then it opens a serial port, which becomes stdout, causing all 
printf statements to go out the serial port.
The solution is quite simple, just disable all printf statements for a 
cygwin build. I have no idea how to get console output when using the 
-mwindows flag, but I don't really need it.

I didn't notice this at first because my homemade rs232 hardware expects 
0xFF and then 12 bytes (for 12 pwm channels) which is sent to it every 
16 ms or so, so any garbage sent to it basically gets ignored because 
the hardware waits for the 0xFF prefix.
However, some people use hardware that doesn't expect a prefix, so if it 
expects 9 bytes at a time for 9 pwm channels, and the data from the 
printf statements is sent out the serial port, the hardware gets out of 
sync.
This is a really bad design for a protocol, but there's a howto for the 
hardware on the net somewhere so a lot of people use it.

Bob.

--
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/



More information about the Cygwin mailing list