Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Subject: Re: bash/cmd CTRL-C problem... From: Michael Rumpf To: Corinna Vinschen In-Reply-To: <20011221162415.B27464@cygbert.vinschen.de> References: <00f201c18922$2783b180$c51811ac AT brokat DOT de> <003c01c18936$55ca5fd0$c51811ac AT brokat DOT de> <05cb01c18a07$85d72c40$c51811ac AT brokat DOT de> <20011221162415 DOT B27464 AT cygbert DOT vinschen DOT de> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Evolution/1.0.0.99+cvs.2001.12.17.09.00 (Preview Release) Date: 21 Dec 2001 16:39:44 +0100 Message-Id: <1008949185.1024.2.camel@ppro> Mime-Version: 1.0 Hi Corinna, thanks for the answer. No I haven't tried such an option as I must admit that I don't know about it. I will search for it in the docs and try to play around with it... Michael On Fri, 2001-12-21 at 16:24, Corinna Vinschen wrote: > On Fri, Dec 21, 2001 at 11:09:05AM +0100, Michael Rumpf wrote: > > Am I the only one having problems with this, or is this simply the wrong > > list to ask a question about the Cygwin bash... ?? > > Nah, this is the right list. Nobody has an answer, though. > > Did you try `CYGWIN=... tty ...' setting? > > Corinna > > > > > Michael > > > > ----- Original Message ----- > > From: "Michael Rumpf" > > To: > > Sent: Thursday, December 20, 2001 10:11 AM > > Subject: Re: bash/cmd CTRL-C problem... > > > > > > > Hi, > > > > > > sorry for following up myself, but I found out that Cygwin equally handles > > > CTRL-BREAK and CTRL-C by sending a SIGINT to the process. > > > See http://groups.yahoo.com/group/gnu-win32/message/27643 (last sentence). > > > This seems to be the source of the problem. > > > CTRL-BREAK under the cmd shell terminates the process after handling the > > > signal without further executing any code. The bad thing is that under > > bash > > > the same behaviour follows from pressing CTRL-BREAK _and_ CTRL-C !! > > > > > > If this is a design issue, can someone please explain what the reasons > > > are... > > > > > > We have an application that forks other processes. The main thread is > > > waiting for the signal handler to return in order to cleanly stop the > > child > > > processes. By just stopping the parent process the child processes keep > > > running and I have to kill them manually each time I press CTRL-C. The > > same > > > application is working fine under windows cmd shell and bash under Linux , > > > HP-UX 10/11, AIX4.x, and SunOS 2.5+... > > > > > > Please help, I don't want to use the stupid windows cmd shell.... ;-) > > > > > > Michael > > > > > > ----- Original Message ----- > > > From: "Michael Rumpf" > > > To: > > > Sent: Thursday, December 20, 2001 7:47 AM > > > Subject: bash/cmd CTRL-C problem... > > > > > > > > > > Hi, > > > > > > > > I'm new to the list and I don't know if this problem is already solved, > > > but > > > > I couldn't find a hint neither on the archives nor on the FAQ or > > somewhere > > > > else on the net. > > > > > > > > My problem is related to bash/cmd and signal handling. > > > > In my app I installed a signal handler for SIGINT. The app is going into > > a > > > > wait loop and waiting for the exit flag from the signal handler to be > > set. > > > > > > > > When pressing CTRL-C in the windows cmd shell the application continues > > > > normally after the signal handler has been caught. Under bash the signal > > > > handler is also correctly called, but after that the app is exiting > > > > immediatly, i.e. not continuing with the code. > > > > Here is the source: > > > > > > > > > > > > > //////////////////////////////////////////////////////////////////////////// > > > > ///////////////// > > > > #include > > > > #include > > > > #include > > > > > > > > bool loop = true; > > > > > > > > extern "C" void signalHandler(int sig) > > > > { > > > > switch( sig ) > > > > { > > > > case SIGINT: // == 2 > > > > printf("SIGINT=%d\n",sig); > > > > break; > > > > default: > > > > printf("default=%d\n",sig); > > > > break; > > > > }; > > > > loop=false; > > > > } > > > > > > > > int main(int argc, char* argv[]) > > > > { > > > > if (signal( SIGINT , signalHandler ) == SIG_ERR) > > > > return -1; > > > > printf("### ctrlbreak: Waiting now...\n"); > > > > while(loop) > > > > Sleep ((DWORD) 1000) ; > > > > printf("### ctrlbreak: Finished waiting now...\n"); > > > > return 0; > > > > } > > > > > > > > > //////////////////////////////////////////////////////////////////////////// > > > > ///////////////// > > > > > > > > Here the the output of the app under Win2K/bash: > > > > // bash 2.05a-2 > > > > $ ./ctrlbreak.exe > > > > ### ctrlbreak: Waiting now... > > > > SIGINT=2 > > > > > > > > > > > > // GNU bash, version 2.02.1(2)-release (i586-pc-cygwin32) B20.1 > > > > bash-2.02$ ./ctrlbreak > > > > ### ctrlbreak: Waiting now... > > > > SIGINT=2 > > > > > > > > // cmd.exe Win2k SP2 > > > > ### ctrlbreak: Waiting now... > > > > SIGINT=2 > > > > ### ctrlbreak: Finished waiting now... > > > > > > > > > > > > You can see that under the cmd shell the text "Finished waiting now..." > > is > > > > printed which does not come out under the bash. The app is not linked > > > > against any cygwin library. It is a plain VC++ console application. But > > > when > > > > I compile with gcc from the cygwin package I have the same result. > > > > Any hint would be greatly appreciated... > > > > > > > > Michael > > > > > > > > PS: I just downloaded the latest stable version 1.3.6 today... > > > > > > > > > > > > > > > > -- > > > > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > > > > Bug reporting: http://cygwin.com/bugs.html > > > > Documentation: http://cygwin.com/docs.html > > > > FAQ: http://cygwin.com/faq/ > > > > > > > > > > > > > > > > > -- > > > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > > > Bug reporting: http://cygwin.com/bugs.html > > > Documentation: http://cygwin.com/docs.html > > > FAQ: http://cygwin.com/faq/ > > > > > > > > > -- > > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > > Bug reporting: http://cygwin.com/bugs.html > > Documentation: http://cygwin.com/docs.html > > FAQ: http://cygwin.com/faq/ > > -- > Corinna Vinschen Please, send mails regarding Cygwin to > Cygwin Developer mailto:cygwin AT cygwin DOT com > Red Hat, Inc. > > -- > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > Bug reporting: http://cygwin.com/bugs.html > Documentation: http://cygwin.com/docs.html > FAQ: http://cygwin.com/faq/ > -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/