---
.gitignore | 1 +
Makefile | 1 +
realpath.c | 34 ++++++++++++++++++++++++++++++++++
3 files changed, 36 insertions(+)
create mode 100644 realpath.c
diff --git a/.gitignore b/.gitignore
index e789e24..f1ce1c2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -57,6 +57,7 @@
/printf
/pwd
/readlink
+/realpath
/renice
/rev
/rm
diff --git a/Makefile b/Makefile
index 8e8732a..f0657d3 100644
--- a/Makefile
+++ b/Makefile
@@ -147,6 +147,7 @@ BIN =\
printf\
pwd\
readlink\
+ realpath\
renice\
rev\
rm\
diff --git a/realpath.c b/realpath.c
new file mode 100644
index 0000000..c6d6204
--- /dev/null
+++ b/realpath.c
@@ -0,0 +1,34 @@
+#include <limits.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "util.h"
+
+static void
+usage(void)
+{
+ eprintf("usage: %s file ...\n", argv0);
+}
+
+int
+main(int argc, char *argv[])
+{
+ char buf[PATH_MAX];
+ size_t i;
+
+ ARGBEGIN {
+ default:
+ usage();
+ } ARGEND
+
+ if (argc == 0)
+ usage();
+ for (i = 0; i < argc; i++) {
+ if (realpath(argv[i], buf) == NULL)
+ eprintf("realpath:");
+ puts(buf);
+ }
+
+ return fshut(stdout, "<stdout>");
+
+}
--
2.44.0