#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main(int argc, char **argv) {
    if (argc != 2) {
        fprintf(stderr, "use: readable <filename>\n");
        return EXIT_FAILURE;
    }

    printf("geteuid(): %d - effective user ID\n", (int)geteuid());
    printf("getegid(): %d - effective group ID\n", (int)getegid());
    printf("getuid():  %d - user ID\n", (int)getuid());
    printf("getgid():  %d - group ID\n", (int)getgid());

    if (!access(argv[1], R_OK)) {
        printf("ok to read %s\n", argv[1]);
        return EXIT_SUCCESS;
    } else {
        perror(argv[1]);
        return EXIT_FAILURE;
    }
}
