XOPEN_SOURCE и обработка сигналов

В следующей программе, если я раскомментирую строку _XOPEN_SOURCE, моя программа завершится, когда я нажму Cc, та же программа не завершится. Я не комментирую эту строку. Кто-нибудь знает, как _XOPEN_SOURCEвлияет на обработку сигнала? Я на Linux с gcc (4.6.3) и glibc (2.15).

/* #define _XOPEN_SOURCE 700 */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>

typedef void (*sighandler_t)(int);

void handle_signal(int signo)
{
    printf("\n[MY_SHELL] ");
    fflush(stdout);
}

int main()
{
    int c;
    signal(SIGINT, SIG_IGN);
    signal(SIGINT, handle_signal);
    printf("[MY_SHELL] ");
    while ((c = getchar()) != EOF) {
        if (c == '\n')
            printf("[MY_SHELL] ");
    }
    printf("\n");
    return 0;
}
8
задан yasar 23 May 2012 в 07:35
поделиться