• linux 中断和终端测试程序


    该程序测试相应终端的 ctrl - c 中断和终端的控制等

    /**
    * testsignal.c
    */
    #include
    <stdio.h>
    #include
    <signal.h>
    #include
    <termios.h>
    #include
    <fcntl.h>
    void ctrl_c_hander();
    void set_cr_mode();
    void reset_mode(int flag);
    int main(int ac,char *av[])
    {
    int counts=0,i=0;
    reset_mode(
    0);
    set_cr_mode();
    signal(SIGINT,ctrl_c_hander);
    while(1)
    {
            counts
    ++;
            printf(
    "loop");
            
    for(i=counts;i>0;i--)
                    printf(
    "!");
            printf(
    "\n");
            
    if(ac==2)
            {
                    
    //if(atoi(av[1][0])==counts)
                    
    //      exit(1);
            }
            sleep(
    1);
    }
    reset_mode(
    1);
    }
    void ctrl_c_hander()
    {
    puts(
    "do you want exit.(y/n)\n");
    if(tolower(getchar())=='y')
            {
            reset_mode(
    1);
            exit(
    1);
            }
    return;
    }
    void set_cr_mode()
    {
    struct termios setting;
    tcgetattr(
    0,&setting);
    setting.c_lflag 
    &= ~ICANON;
    setting.c_lflag 
    &= ~ECHO;
    setting.c_cc[VMIN]
    =1;
    tcsetattr(
    0,TCSANOW,&setting);
    }
    void reset_mode(int flag)
    {
    static struct termios info;
    //static int    termflag;
    static int    does;
    if(flag==0)
            {
            tcgetattr(
    0,&info);
    //      termflag=fcntl(0,F_GETFL);
            does=1;
            }
    else if(does==1)
            {
    //      fcntl(0,F_SETFL,termflag);
            tcsetattr(0,TCSANOW,&info);
            }
    }
  • 相关阅读:
    js和jquery 两种写法 鼠标经过图片切换背景效果
    phpStudy如何修改端口及WWW目录
    模仿淘宝上传图片之后在图片中单击按钮?
    资源汇总
    标题类型-整型
    VB6 内存释放
    在Textbox中按回车键后继续获取焦点
    ADO 读写文本文件
    VBA 拷贝文件
    VBA 获取文件夹内的文件列表
  • 原文地址:https://www.cnblogs.com/ringwang/p/1429871.html
Copyright © 2020-2023  润新知