This code doesn't compile. Why?
// function for signal handling
void handler(int signum) {
    fprintf(stdout, "Bruh Moment");
    exit(0);
}

int main(int argc, char **argv) {
    if (argc != 3) {
        fprintf(stderr, "Usage: time_reads s filename\n");
        exit(1);
    }
    seconds = strtol(argv[1], NULL, 10);

    FILE *fp;
    if ((fp = fopen(argv[2], "r")) == NULL) {
        perror("fopen");
        exit(1);
    }

    int max = 99;
    int min = 0;

    // create a struct sigaction
    struct sigaction act;
    act.sa_handler = handler;
    act.sa_flags = 0;
    sigemptyset(&act.sa_mask);
    if (sigaction(SIGINT, act, NULL) == -1) {
        perror("sigaction");
        exit(1);
    }

    for (;;) {
        int index = random() % (max - min + 1) + min;

        if (fseek(fp, index * sizeof(int), SEEK_SET) == -1) {
            perror("fseek");
            exit(1);
        }

        int k;
        if (fread(&k, sizeof(int), 1, fp) == -1) {
            perror("fread");
            exit(1);
        }

        fprintf(stdout, "%d", k);
    }
    return 1;  // something is wrong if we ever get here!
}