volatile int i;
void signal_handler (int s)
{
  i = 1;
  printf ("%d\n", s);
}
↑ここでprintfを呼ぶのと
int main ()
{
  signal (SIGINT, signal_handler);
  while (!i)
    printf ("%d\n", i);
  return 0;
}
↑ここで割り込みを入れるのと、どちらがいけないということですか?