在下面的程序中,如果我不注意 XOPEN_SOURCE
线, 当我点击 C-c
时, 我的程序就会终止, 如果我不评论该行, 同样的程序就不会终止 。 有人知道 XOPEN_SOURCE
如何影响信号处理? 我用 gcc (4. 6. 3) 和 glibc (2. 15) 在 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("
[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 ==
)
printf("[MY_SHELL] ");
}
printf("
");
return 0;
}