1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/brisk-clock

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
clock.c 1.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
brisk Отправлено 18.12.2013 21:03 db99d6d
#include <ncurses.h>
#include <unistd.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <errno.h>
void error_quit(char *msg)
{
perror(msg);
exit(1);
}
void *normal_quit(void *win)
{
while(getchar()!='q')
continue;
delwin((WINDOW *)win);
endwin();
echo();
printf("Exit. . .\n");
printf("\nExit Clock Now. . .\n");
exit(0);
}
int main(void)
{
int x,y;
time_t t;
char buf[30];
pthread_t thread;
WINDOW *win;
initscr();
curs_set(0);
noecho();
if(has_colors())
{
start_color();
use_default_colors();
init_pair(1,COLOR_CYAN,-1);
}
getmaxyx(stdscr,y,x);
if((win=newwin(5,40,y/2-5/2,x/2-40/2))==NULL)
error_quit("Create New Window Error!");
refresh();
box(win,0,0);
wrefresh(win);
getmaxyx(win,y,x);
if(pthread_create(&thread,NULL,normal_quit,win)==-1)
error_quit("Create thread Error!");
wattron(win,COLOR_PAIR(1));
while(1)
{
t=time(NULL);
snprintf(buf,strlen(ctime(&t)),"%s",ctime(&t));
mvwprintw(win,y/2,x/2-(strlen(buf)+1)/2,buf/*ctime(&t)*/);
//mvwprintw(win,y/2,x-1,"%c",'|');
wrefresh(win);
sleep(1);
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/brisk-clock.git
git@api.gitlife.ru:oschina-mirror/brisk-clock.git
oschina-mirror
brisk-clock
brisk-clock
master