/* tasakello1.c */ /* toimii HP-UXissakin */ /* saattaa toistaa ajan */ #include #include #include #include #include void inthandler(sig) { printf("\nHaluatko todella lopettaa? (k/e) "); while (1) { switch(getchar()) { default: printf("\nVastaa k tai e "); continue; case 'k': case 'K': printf("OK, hei hei\n"); exit(EXIT_SUCCESS); case 'e': case 'E': printf("Hienoa, jatketaan\n"); if (signal(SIGINT, inthandler) == SIG_ERR) { perror("signal"); exit(EXIT_FAILURE); } return; } } } int main() { time_t unixaika; struct tm *aika; if (signal(SIGINT, inthandler) == SIG_ERR) { perror("signal"); exit(EXIT_FAILURE); } while(1) { unixaika = time(NULL); aika = localtime(&unixaika); sleep( 10 - (aika->tm_sec)%10); unixaika = time(NULL); aika = localtime(&unixaika); printf("%02d:%02d:%02d\n", aika->tm_hour, aika->tm_min, 10*(aika->tm_sec/10)); } }