spawnl and signals
Christopher Faylor
cgf@redhat.com
Sat May 19 07:57:00 GMT 2001
On Sat, May 19, 2001 at 03:50:37PM +0100, Jason Moxham wrote:
>>If you compile and run program below with latest cygwin you get the
>expected behavour
>>// This is jay.exe
>>#include <stdio.h>
>#include <stdlib.h>
>#include <signal.h>
>>volatile int gotsignal=0;
>>void sighandler(int signum){gotsignal=signum;return;}
>>int main(void)
>{int a;
>>printf("in jay.exe\n");fflush(0);
>signal(SIGINT,sighandler);
>do{
>if(gotsignal!=0)
> {printf("got signal %d\n",gotsignal);
> fflush(0);
> gotsignal=0;break;}
>}while(1);
>return 0;}
>>However if you compile and run the program below which calls the above
>program then the ctrl-C signal is never detected
>>// this is jay1.exe
>>#include <stdio.h>
>#include <stdlib.h>
>#include <signal.h>
>#include <process.h>
>>volatile int gotsignal=0;
>>void sighandler(int signum){gotsignal=signum;return;}
>>int main(void)
>{int a;
>>spawnl(_P_NOWAIT,"./jay.exe","./jay.exe",0);
>//execl("./jay.exe","./jay.exe",0);
>>return 0;}
>>this is running under Window 98SE under a DOS prompt
>changing the spawnl to a execl makes it work as it should
P_NOWAIT starts a background process. Background processes don't
respond to CTRL-Cs. It is the same as if you typed "jay.exe&" in bash.
If you send a specific SIGINT to the process it should stop though.
cgf
--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list