#include #include #define o(j,k,m,n,l) { \ fprintf(j,a[k],m,n,a[l]); \ fflush(j); \ } char *a[]={"%c+------------+\n","%c+%3d %-8s+\n","seconds","minutes", "hours","%s\n","\0337\033[%d;65;H%s\0338"}; int b[]={0,0,17,14,11,0}; main(v,c) int v; char ** c; { char d[40], *e, f = 6; time_t g; FILE *h,*i; while (--f && !pipe(d) && !fork()); h = fdopen(6-f<<1,"a"); i=fdopen((6-f<<1)+1,"r"); for(;;) { if (f) { fgets(d,40,i); d[strlen(d)-1]='\0'; if (*d=='0'+f) { sprintf(*c,"%s\n",d+1); o(stdout,6,6-f,d+1,0) } if (*d > '0' + f) o(h,5,d,0,0) } else { time(&g); e = asctime(localtime(&g)); for (v=1; v<6; v++) o(h,v!=1&&v!=6-1,v+'0',atoi(e+b[v]),v) sleep(1); } } }