如何使用termios实现输入键ctl+c的屏蔽?在线等待,急。

shuanger001 2006-04-18 12:32:39
新人,领导让改bug。看例子看不太明白,哪位高人帮帮我看看下面的代码什么意思,并告诉我如何实现屏蔽?谢谢了。
memset( &g_termios, 0, sizeof( struct termios ) );
tcgetattr( fileno( stdin ), &g_termios );
....
....
signal( SIGINT, nsh_sigint_handler );
// for ^Z
g_termios.c_cc[VSUSP] = 3;// Set ^Z to ^C
tcsetattr( fileno( stdin ), TCSANOW, &g_termios );
...全文
96 4 点赞 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shuanger001 2006-04-18
谢谢呀。我刚接触linux。感觉好难呀。就给分。
  • 打赏
  • 举报
回复
fierygnu 2006-04-18
应该用SIG_IGN,不是SIG_DFL。那样就退出了。
  • 打赏
  • 举报
回复
shuanger001 2006-04-18
memset(&g_termios,0,sizeof(struct termios));
1247 tcgetattr(fileno(stdin),&g_termios);
1248 signal(SIGINT,nsh_sigint_handler);

1250 g_termios.c_cc[VSUSP] == 3;
1251 tcsetattr(fileno(stdin),TCSANOW,&g_termios);
1252 signal(SIGINT,SIG_DFL);
这样写可以不?
  • 打赏
  • 举报
回复
fierygnu 2006-04-18
man tcsetattr和termios。

你已经接管了SIGINT
signal( SIGINT, nsh_sigint_handler );
在处理函数里不要退出就可以了。
  • 打赏
  • 举报
回复
相关推荐
发帖
实用资料发布区
加入

3283

社区成员

Linux/Unix社区 实用资料发布区
申请成为版主
帖子事件
创建了帖子
2006-04-18 12:32
社区公告
暂无公告