Signal handling in WIN32 console programs

Corinna Vinschen corinna-cygwin@cygwin.com
Fri Jan 23 13:42:00 GMT 2009


On Jan 22 18:05, avadekar@certicom.com wrote:
> On Thu, Jan 22, 2009 at 05:04:23PM -0500, Christopher Faylor wrote:
> > On Thu, Jan 22, 2009 at 09:58:08PM +0000, Andy Koppe wrote:
> > > avadekar@certicom.com wrote:
> > >>  So I
> > >>wonder if the native console passes the character to the process
> > >>directly whereas the minTTY/rxvt shells interpret it and send a signal
> > >>that the native app doesn't really understand properly.
> > >
> > >MinTTY and rxvt do not interpret the ^C keypress in any special way.
> > >They simply write a ^C (0x03) character to the child process' pty.  The
> > >pty driver may translate that into a signal depending on the pty's line
> > >settings (as shown by stty).  Sorry I don't know how ^C is processed in
> > >a Windows console or why the behaviour would be different with ptys.
> > 
> > The operative term here is, once again, "Windows Console".  A pure
> > Windows program running in MinTTY or rxvt does not have a windows
> > console and so won't see the type of SIGINT that the windows console
> > generates.
> 
> Is there something that I could do inside the native application code to catch
> what it is getting?  I've tried SetConsoleCtrlhandler, but that also never
> gets invoked prior to the process termination.

No.  The Cygwin tty apps like rxvt and MinTTY are using POSIX signal
handling.  The implementation for that only exists in Cygwin and only
Cygwin applications are able to deal with them.

Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

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