这个例子也很好玩,相应的位置设置成_POSIX_VDISABLE就可以把相应的字符disable掉。
/*
* =====================================================================================
*
* Filename: disable_interrupt.c
*
* Description:
*
* Version: 1.0
* Created: 09/15/2010 03:58:55 PM
* Revision: none
* Compiler: gcc
*
* Author: YOUR NAME (),
* Company:
*
* =====================================================================================
*/
#include <termios.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int
main(void)
{
struct termios term;
long vdisable;
if (isatty(STDIN_FILENO) == 0)
{
printf("standard input is not a terminal device/n");
return -1;
}
if ((vdisable = fpathconf(STDIN_FILENO, _PC_VDISABLE)) < 0)
{
printf("fpathconf error or _POSIX_VDISABLE not in effect/n");
return -1;
}
if (tcgetattr(STDIN_FILENO, &term) < 0)
perror("tcgetattr error");
term.c_cc[VINTR] = vdisable; /* disable INTR character */
term.c_cc[VEOF] = 2; /* EOF is ^B */
if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term) < 0)
perror("tcsetattr error");
return 0;
}