aboutsummaryrefslogtreecommitdiff
path: root/sys/base/os.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/base/os.c')
-rw-r--r--sys/base/os.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/sys/base/os.c b/sys/base/os.c
new file mode 100644
index 0000000..d5277b5
--- /dev/null
+++ b/sys/base/os.c
@@ -0,0 +1,30 @@
+#include <u.h>
+#include <base.h>
+
+int
+os·exists(byte *path, int flag)
+{
+ return access(path, flag) == 0;
+}
+
+int
+os·sep(void)
+{
+#if defined(UNIX) || defined(__linux__)
+ return '/';
+#elif defined(WIN32)
+ return '\\';
+#else
+ panicf("unrecognized operating system");
+ return '\0';
+#endif
+}
+
+byte*
+os·basename(byte *path)
+{
+ byte *sep;
+
+ sep = utf8·findrrune(path, os·sep());
+ return (sep == nil) ? path : sep+1;
+}