当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : C程序在遇到键盘输入Ctrl+C时会清空缓冲区?[6.29重新整提问内容]
帖子发表于 : 2015-06-29 19:12 

注册: 2013-05-26 6:58
帖子: 2154
系统: Debian 9
送出感谢: 893
接收感谢: 30
//C程序在遇到键盘输入Ctrl+C时会清空缓冲区?
//在程序延迟时按住enter不放或狂按enter
//程序会延时后读取缓冲区
//但是如果键盘输入Ctrl+C,则程序会暂停,好像stdin缓冲区被清空了?
//stdin貌似也没有遇到非法字符之类的错误,缓冲区的内容怎么消失了?
//平台是Lubuntu中的lxterminal

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
unsigned count_i=0;
void mf(int a)
{
signal(SIGINT,mf);
count_i++;
printf("\n捕获到SIGINT:%u\n",count_i);
fflush(stdout);
}
int main(void)
{
signal(SIGINT,mf);
unsigned i=0;

for(; getchar()!='a';)
{
if(ferror(stdin))fprintf(stderr,"\n出错\n");

i++;
printf("\n%u\n",i);
fflush(stdout);
sleep(1);
//sleep(10);
raise(SIGINT);
}
return 0;
}


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译