当前位置: 技术问答>linux和unix
在curses上打印文本,怎么出错??
来源: 互联网 发布时间:2016-07-03
本文导语: #include #include #include #include #include #include int length; int speed; int col; int row; int fd; main(int ag,char **avgs){ void handler(int); length = string_to_int(avgs[2]); speed = string_to_int(avgs[3]); int c; col = 0; row = 10; initscr(); crmod...
#include
#include
#include
#include
#include
#include
int length;
int speed;
int col;
int row;
int fd;
main(int ag,char **avgs){
void handler(int);
length = string_to_int(avgs[2]);
speed = string_to_int(avgs[3]);
int c;
col = 0;
row = 10;
initscr();
crmode();
noecho();
clear();
if((fd=open(avgs[1],O_RDONLY)) == -1)
perror(avgs[1]);
set_ticker(speed);
signal(SIGALRM,handler);
while(1){
c = getch();
if(c == 'q') break;
}
close(fd);
endwin();
return 0;
}
void handler(int signum){
char buf[length];
col = col + length + 1;
if(col = COLS){
row += 1;
col = 0;
}
read(fd,buf,length);
move(row,col);
addstr(buf);
refresh();
}
int string_to_int(char *string){
return atoi(string);
}
int set_ticker(int n_msecs){
struct itimerval new_timeset;
long n_sec,n_usecs;
n_sec - n_msecs/1000;
n_usecs = (n_msecs%1000)*1000L;
new_timeset.it_interval.tv_sec = n_sec;
new_timeset.it_interval.tv_usec = n_usecs;
new_timeset.it_value.tv_sec = n_sec;
new_timeset.it_value.tv_usec = n_usecs;
return setitimer(ITIMER_REAL,&new_timeset,NULL);
}
我想实现的是每当受到时钟发来的信号,就从用户指定的文件中读取用户指定长度的文本,然后显示在curses上....
可是这段不行,好心人帮看看哪里不行???
|
我改过就行了
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。