Programación concurrente en Linux

    // pulsometro.c
    // Cuenta pulsaciones (entradas de teclado) por minuto
    // Es especifico para Linux
    //////////////////////////////////////////////////////

    #include <stdio.h>
    #include <stdlib.h>
    #include <signal.h>
    #include <unistd.h>
    #include <sys/time.h>

    int cnt= 0;
    int t;

    void fin() {
        printf("\nHas hecho %1.0f ppm\n\n", ((float)cnt/t)*60);
        exit(0);
    }

    int main (int argc, const char * argv[]) {

        signal(SIGALRM, fin);

        if (argc != 2) {
            printf("Uso: %s intervalo de medida en segundos\n", argv[0]);
            exit(1);
        }

        t= atoi(argv[1]);
        alarm(t);

        while (getchar() != EOF) {
            cnt++;
        }
    }