免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2431 | 回复: 12
打印 上一主题 下一主题

[SCO UNIX] 在字符界面中动态显示时间(操作界面,不是监控界面) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-14 21:57 |只看该作者 |倒序浏览
我用signal和alarm实现动态显示时间,但总会获取当前操作界面的属性,如一会反白,一会右下划线等等,用fork开子进程也不行,开新窗口也不行,那位仁兄在操作界面中做过显示时间的程序,望指点一二,谢谢!

论坛徽章:
0
2 [报告]
发表于 2003-07-14 22:05 |只看该作者

在字符界面中动态显示时间(操作界面,不是监控界面)

ncurses里面有例子,有个时钟程序,看看有用没有

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
3 [报告]
发表于 2003-07-14 22:13 |只看该作者

在字符界面中动态显示时间(操作界面,不是监控界面)

http://asp3.6to23.com/sdccf/freedown/sort.asp?typeid=80

论坛徽章:
0
4 [报告]
发表于 2003-07-15 08:35 |只看该作者

在字符界面中动态显示时间(操作界面,不是监控界面)

sdccf:你提示的动态显示时间程序我看过了,那是一个专门显示时间的程序,用while循环实现的,与操作界面很难结合起来,不知那位仁兄有ncurses显示时间的例子,贴上来看看。

论坛徽章:
0
5 [报告]
发表于 2003-07-15 09:55 |只看该作者

在字符界面中动态显示时间(操作界面,不是监控界面)

你安装ncurses-devel,在/usr/share/doc/ncurses-devel-x.x 里面有

论坛徽章:
0
6 [报告]
发表于 2003-07-15 18:52 |只看该作者

在字符界面中动态显示时间(操作界面,不是监控界面)

你可以将时钟单独设置为一个子窗口, 然后将需要显示的数据发送到时钟窗口中, 在接收到键盘输入后, 需要使用 alarm(0)  来关闭时钟运行程序, 这样你的程序就不会在显示时钟的时候与其它内容产生冲突了.

论坛徽章:
0
7 [报告]
发表于 2003-07-15 21:15 |只看该作者

在字符界面中动态显示时间(操作界面,不是监控界面)

多谢大伙帮着想办法,但alarm(0)时我的时间就动不起来了,现在是要求操作界面的同时又要显示时间。说白了就是想在银行柜台的操作界面动态的显示时间,这里好像有很都银行的朋友,是否知道怎样处理?

论坛徽章:
0
8 [报告]
发表于 2003-07-15 22:25 |只看该作者

在字符界面中动态显示时间(操作界面,不是监控界面)

用signal和alarm实现动态显示时间是对的,我写过,效果很好
千万不可用FORK

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2015-11-26 06:20:00数据库技术版块每日发帖之星
日期:2016-02-25 06:20:00
9 [报告]
发表于 2003-07-16 09:23 |只看该作者

在字符界面中动态显示时间(操作界面,不是监控界面)

# include <curses.h>;
# include <signal.h>;
# include <time.h>;
# include <term.h>;

void disp_curtime()
{
  保存当前光标位置;
#ifdef M_TERMINFO
  // set cursor off;
  cur_term->;_cursorstate = 0;
  setcurterm(cur_term);
#endif
  得到当前日期和时间;
  在屏幕的某一个位置显示日期和时间;
#ifdef M_TERMINFO
  // set cursor on;
  cur_term->;_cursorstate = 1;
  setcurterm(cur_term);
#endif
  恢复保存的光标位置;
}

int GetKey()
{
  int rc;
  while ( TRUE ) {
    signal(SIGALRM, disp_curtime);
    alarm(1);
    rc = getch();
    signal(SIGALRM, SIG_DFL);
    alarm(0);
    if ( rc >;= 0 ) break;
  }
  return(rc);
}

这样你在程序中,可以用GetKey()代替getch(), 程序运行时,等候操作过程中就会实时显示时间。

论坛徽章:
0
10 [报告]
发表于 2003-07-16 21:58 |只看该作者

在字符界面中动态显示时间(操作界面,不是监控界面)

D2002:你的方法是不行的,当我在等待键盘输入时,会将但前字符的下划线属性获取,从而显示带下划线的时间,当你进入菜单项操作时又会变成反白显示了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP