#include #include #include #include #include #include #include #include #include #include #include jmp_buf env; void pipehandler(int sig) { longjmp(env,1); } int main() { time_t unixaika; struct tm *aika; int f; char s[] = "00:00:00\n"; if (mkfifo("kello", 0644)) { perror("mkfifo"); exit(1); } setjmp(env); signal(SIGPIPE, pipehandler); while (1) { close(f); /* ignore errors */ if ((f=open("kello",O_WRONLY))<0) { perror("open"); exit(1); } unixaika=time(NULL); aika = localtime(&unixaika); sprintf(s,"%02d:%02d:%02d\n", aika->tm_hour, aika->tm_min, aika->tm_sec); write(f,s,strlen(s)); } }