Chinaunix首页 | 论坛 | 博客
  • 博客访问: 109315
  • 博文数量: 74
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 757
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-20 22:42
个人简介

相信生命中的无限潜能

文章分类

全部博文(74)

文章存档

2016年(1)

2015年(30)

2014年(30)

2013年(13)

我的朋友

分类: C/C++

2014-02-19 17:49:00


  1. #include <stdio.h>
  1. #include <stdlib.h>
  1. #include <unistd.h>
  1. #include <signal.h>
  1. #include <math.h>
  1. #include <curses.h>
  1. WINDOW *w;
  1. int num;
  1. int isstop=0;
  1. void handle(int s)
  1. {
  1.     if(s==SIGUSR1)
  1.     {
  1.         if(isstop==1)
  1.             isstop=0;
  1.         else
  1.             isstop=1;
  1.     }
  1. }
  1. int main()
  1. {
  1.     initscr();
  1.     curs_set(0);//隐藏光标
  1.     noecho();//禁止输入回显
  1.     //创建一个子窗体
  1.     w=derwin(stdscr,3,11,(LINES-3)/2,(COLS-11)/2);
  1.     //box(w,0,0);//给子窗体加边框
  1.     refresh();
  1.     wrefresh(w);
  1.     if(fork())
  1.     {
  1.         //显示7位数的随机数
  1.         while(1)
  1.         {
  1.             signal(SIGUSR1,handle);
  1.             if(isstop==1)
  1.             {
  1.                 pause();//pause()功能让进程暂停直到信号出现
  1.             }
  1.             num=num*10+rand()%10;//随机数
  1.             mvwprintw(w,1,1,"%07d",num);//显示在w窗口 1列1行显示num
  1.             refresh();
  1.             usleep(10000);//暂停10毫秒
  1.         }
  1.     }
  1.     else
  1.     {
  1.         //处理按键
  1.         while(1)
  1.         {
  1.             getch();
  1.             kill(getppid(),SIGUSR1);//getppid()获取父进程ID
  1.         }
  1.     }
  1.     endwin();
  1.     return 0;
  1. }


阅读(579) | 评论(0) | 转发(0) |
0

上一篇:signal-alarm

下一篇:mkfifo

给主人留下些什么吧!~~