用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

摇奖程序(利用信号之间通信)

2013-05-02 作者: 德良举报

[c]代码库

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <math.h>
#include <curses.h>
WINDOW *w;
int num;
int isstop=0;
void handle(int s)
{
	if(s==SIGUSR1)
	{
		if(isstop==1)
			isstop=0;
		else
			isstop=1;
	}
}

main()
{
	initscr();
	curs_set(0);//隐藏光标
	noecho();//禁止输入回显
	//创建子窗体
	w=derwin(stdscr,3,11,(LINES-3)/2,(COLS-11)/2);
	box(w,0,0);//给子窗体加边框
	refresh();
	wrefresh(w);
	if(fork())
	{
		//显示7位数的随机数
		signal(SIGUSR1,handle);
		while(1){
			if(isstop==1)
			{
				pause();//pause会被信号中断停止
			}
			num=rand()%10000000;//产生7位随机数
			mvwprintw(w,1,2,"%07d",num);//显示随机数
			refresh();//刷新屏幕。
			wrefresh(w);
			usleep(10000);//暂停10毫秒
		}
	}
	else
	{
		//处理按键
		while(1)
		{
			getch();
			kill(getppid(),SIGUSR1);
		}
	}
	
	endwin();
}

[代码运行效果截图]


摇奖程序(利用信号之间通信)


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...