当前位置:  技术问答>linux和unix

关于sco unix下的curses编程问题:急,,,谁能教教我????

    来源: 互联网  发布时间:2014-12-14

    本文导语:  在sco unix下curses编程,如何实现在当前主画面区能腾出一块区域,专门实现一个时间显示的功能,我们做的任何操作都只是对主画面而言,但我又必须由主画面给一个信号让时间显示的那个进程能收到。      我试...

在sco unix下curses编程,如何实现在当前主画面区能腾出一块区域,专门实现一个时间显示的功能,我们做的任何操作都只是对主画面而言,但我又必须由主画面给一个信号让时间显示的那个进程能收到。

     我试着时间显示的模块作为主画面的一个子进程,应该可以,但我没有试成功,各位给点建议。

另外,在curses编程里如何让闪烁的光标消失??

谢谢

|
1、可以用newwin 开一个子窗口,正常运行时焦点在主窗口,然后设置一个alarm,定时调用子窗口显示当前时间。

2、attrset( A_BLINK );

|
你这里现在的问题应该是进程通信。
你这个要求用个最简单的pipe就可以了。父进程里写,子程序里用select检测,如果有父进程发来的信号就开始变化时间,否则就等待。
父子进程各自操作自己的窗口,不要把哪个作为另一个的subwindow。
如果想做得更好,可以用共享内存来通信。
pipe的用法如下:
/*****************************************************************************
 Excerpt from "Linux Programmer's Guide - Chapter 6"
 (C)opyright 1994-1995, Scott Burkett
 ***************************************************************************** 
 MODULE: pipe.c
 *****************************************************************************/

#include 
#include 
#include 

int main(void)
{
        int     fd[2], nbytes;
        pid_t   childpid;
        char    string[] = "Hello, world!n";
        char    readbuffer[80];

        pipe(fd);
        
        if((childpid = fork()) == -1)
        {
                perror("fork");
                exit(1);
        }

        if(childpid == 0)
        {
                /* Child process closes up input side of pipe */
                close(fd[0]);

                /* Send "string" through the output side of pipe */
                write(fd[1], string, (strlen(string)+1));
                exit(0);
        }
        else
        {
                /* Parent process closes up output side of pipe */
                close(fd[1]);

                /* Read in a string from the pipe */
                nbytes = read(fd[0], readbuffer, sizeof(readbuffer));
                printf("Received string: %s", readbuffer);
        }
        
        return(0);
}
select的用法如下:
//Filename:TimeOut.c
//Designed by ZhouLifa From Computer Application Research Institution, South China University of Technology.
//Date:Aug 15, 2001
//Any bug please contact me at zhoulifa@yahoo.com

#include "TimeOut.h"

int TimeOut( int sock, int t ) {//把子进程的fd[1]当作sock传递过来,自己指定一个比较大的时间t即可了
fd_set readfds;
struct timeval tv;

tv.tv_sec = t;
tv.tv_usec = 0;

FD_ZERO(&readfds);
FD_SET(sock, &readfds);

if((select(sock + 1, &readfds, NULL, NULL, &tv)) 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SCO OpenServer 5.05和SCO UNIXWARE7.11有什么区别?
  • sco unix中类似reg.sco的文件怎么执行?
  • 安装SCO UNIX到PC机上是否一定要用SCO UNIX光盘?
  • SCO UnixWare 跟 SCO Unix 有什么不同????????????是同一个系统吗。。。
  • 请问谁在SCO上用过PERL的DBI/DBD这些东西?MD5算法,LDAP,MYSQL都支持SCO吗?
  • 高分,在sco unix5.05下面用modem进行拔号,或sco unix的学习教程
  • Sco Unix 和red hat linux的最新版本是什么,各有几张盘,SCO UNIX和微软的Xenix哪个更好?
  • 在sun公司网站上,好象没有jdk for sco unix 的版本,可否下载for solaris的辕马在sco unix 下编译
  • sos!我的手提上的网卡是sis900,装了sco 5.0.5发现没有驱动,哪里可以下到sis 900的网卡在sco下的驱动??
  • 路由器配置:有一局域网(SCO UNIX 5.0.5)与一台主机(SCO UNIX 5.0.5)通过祯中继联接。路由器(CISCO2610作主节点)在局域的IP为IPa,广
  • About SCO Openserver and Oracle
  • 学SCO还是学SOLARIS
  • 菜鸟向sco unix+oracle高手请教
  • 请问TOMCAT的LINUX包是否都可以在SCO UNIX中运行和安装
  • 请问sco-Unix的最新版本是多少
  • sco连接数据库的问题
  • SCO Unix下的C程序编译问题?
  • 如何安装SCO OpenServer 5的网络开发包
  • sco opensever5是什么东东?有人在用吗?
  • sco unix5.0.6与win2000的双操作系统???


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3