printf goes to serial port?

Alex Martin
Fri Dec 19 20:35:00 GMT 2008

Matt Wozniski wrote:
> On Fri, Dec 19, 2008 at 2:30 PM, Gary R. Van Sickle wrote:
>>> From: Alex Martin
>>> Hello,
>>> I have a cygwin environment, running some software I am
>>> writing to talk to some serial devices.
>>> Somehow, trying to debug why I could not see printf output to
>>> console, I ran a serial port sniffer and voila all of my
>>> printf commands are writing on the serial port.
>> I can't say that it would cross my mind to look for my missing printf output
>> on a serial port, even if I was using a serial port in other parts of the
>> program to talk to something.  Whatever it was that gave you the hunch to do
>> that is probably at the core of your problem.
> My slightly wild guess is that you do an open() on the serial device
> without a controlling terminal and without passing the O_NOCTTY flag,
> causing the serial device to become your controlling terminal.
> ~Matt

I do this:
     if (port == 1) {
        fd = ::open("/dev/ttyS0", O_NONBLOCK | O_RDWR | O_NOCTTY );

Can you point me to some info about "controlling terminal"? I have been 
living in a strict c++/cygwin/fox-toolkit world and I am not familiar 
with terminals and things.

If I try to run my .exe from a cygwin prompt, it doesnt start up. If I 
run my exe from a cmd.exe window, it starts up my app but then returns 
to a prompt instead of staying open to catch printfs and such.

Any ideas?

Thanks for your help.

Alex Martin

Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list