#include #include #include #include char *progname; static __noreturn usage(void) { fprintf(stderr, "Usage: %s link\n", progname); exit(1); } int main(int argc, char *argv[]) { char *name, *link_name = NULL; size_t max_siz = 128; progname = *argv++; name = *argv++; if (!name) usage(); link_name = malloc(max_siz); if (!link_name) { perror("malloc"); exit(1); } if (readlink(name, link_name, max_siz) == -1) { exit(1); } printf("%s\n", link_name); exit(0); }