Signals, parent & children processes

Alex Vinokur alexvn@users.sourceforge.net
Fri Dec 2 16:33:00 GMT 2005


-----------------------
CYGWIN_NT-5.0 1.5.18
Windows 2000
----------------------


/* --------------------- */
void sigINT_handler1 (int sig_i)
{
  fprintf (stderr, "sigINT_handler1: pid#%d ignores a signal %d\n", getpid(), sig_i);
  signal (SIGINT, sigINT_handler1);
}

void sigINT_handler2 (int sig_i)
{
  fprintf (stderr, "sigINT_handler2: pid#%d ignores a signal %d\n", getpid(), sig_i);
  signal (SIGINT, sigINT_handler2);
}

int main()
// fragments of code
{
  sigINT_handler1 (SIGINT);

  if (fork() > 0)  // Parent
  {
    // Stuff
    waitpid (pid, &status, 0);
  }
  else  // Child
  {
    sigINT_handler2 (SIGINT);
    execvp (<args>);
  }
}

Parent catchs SIGINT via sigINT_handler1,
but Child doesn't catch SIGINT via sigINT_handler2.

How can Child catch SIGINT with its own signal handler?


-- 
 Alex Vinokur
     email: alex DOT vinokur AT gmail DOT com
     http://mathforum.org/library/view/10978.html
     http://sourceforge.net/users/alexvn






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