#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>

#define PATH1 "/opt/quest/lib"
#define PATH2 "/etc/opt/quest"

#define NUM_ITERATIONS 1

int main(void) {
    int i;
    struct timeval tv_stat_start, tv_stat_end;
    struct timeval tv_access_start, tv_access_end;
    struct stat st;

    gettimeofday(&tv_stat_start, NULL);

    for (i = 0; i < NUM_ITERATIONS; ++i) {
        stat(PATH1, &st);
    }

    gettimeofday(&tv_stat_end, NULL);

    gettimeofday(&tv_access_start, NULL);

    for (i = 0; i < NUM_ITERATIONS; ++i) {
        access(PATH2, F_OK);
    }

    gettimeofday(&tv_access_end, NULL);

    unsigned long stat_time = (tv_stat_end.tv_sec - tv_stat_start.tv_sec) * 1000000;
    stat_time += tv_stat_end.tv_usec - tv_stat_start.tv_usec;

    unsigned long access_time = (tv_access_end.tv_sec - tv_access_start.tv_sec) * 1000000;
    access_time += tv_access_end.tv_usec - tv_access_start.tv_usec;

    printf("stat:   %lu microseconds\n", stat_time);
    printf("access: %lu microseconds\n", access_time);

    return 0;
}
