1/* vi: set sw=4 ts=4: */ 2 3/* BB_AUDIT SUSv3 N/A -- Apparently a busybox extension. */ 4 5/* Mar 16, 2003 Manuel Novoa III (mjn3@codepoet.org) 6 * 7 * Now does proper error checking on output and returns a failure exit code 8 * if one or more paths cannot be resolved. 9 * 10 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 11 */ 12 13//usage:#define realpath_trivial_usage 14//usage: "FILE..." 15//usage:#define realpath_full_usage "\n\n" 16//usage: "Return the absolute pathnames of given FILE" 17 18#include "libbb.h" 19 20int realpath_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 21int realpath_main(int argc UNUSED_PARAM, char **argv) 22{ 23 int retval = EXIT_SUCCESS; 24 25 if (!*++argv) { 26 bb_show_usage(); 27 } 28 29 do { 30 char *resolved_path = xmalloc_realpath(*argv); 31 if (resolved_path != NULL) { 32 puts(resolved_path); 33 free(resolved_path); 34 } else { 35 retval = EXIT_FAILURE; 36 bb_simple_perror_msg(*argv); 37 } 38 } while (*++argv); 39 40 fflush_stdout_and_exit(retval); 41} 42