diff options
Diffstat (limited to 'src/base/fs')
-rw-r--r-- | src/base/fs/basename.c | 10 | ||||
-rw-r--r-- | src/base/fs/dirname.c | 12 | ||||
-rw-r--r-- | src/base/fs/exists.c | 7 | ||||
-rw-r--r-- | src/base/fs/rules.mk | 3 |
4 files changed, 32 insertions, 0 deletions
diff --git a/src/base/fs/basename.c b/src/base/fs/basename.c new file mode 100644 index 0000000..2f097da --- /dev/null +++ b/src/base/fs/basename.c @@ -0,0 +1,10 @@ +#include "internal.h" + +char* +fs·basename(char *path) +{ + char *sep; + + sep = strrchr(path, '/'); + return (sep == nil) ? path : sep+1; +} diff --git a/src/base/fs/dirname.c b/src/base/fs/dirname.c new file mode 100644 index 0000000..f312f63 --- /dev/null +++ b/src/base/fs/dirname.c @@ -0,0 +1,12 @@ +#include "internal.h" + +char* +fs·dirname(char *path) +{ + char *sep; + + if((sep = strrchr(path, '/'))) + *sep = 0; + + return path; +} diff --git a/src/base/fs/exists.c b/src/base/fs/exists.c new file mode 100644 index 0000000..1841a41 --- /dev/null +++ b/src/base/fs/exists.c @@ -0,0 +1,7 @@ +#include "internal.h" + +int +fs·exists(byte *path, int flag) +{ + return access(path, flag) == 0; +} diff --git a/src/base/fs/rules.mk b/src/base/fs/rules.mk index 3927ae3..663a80c 100644 --- a/src/base/fs/rules.mk +++ b/src/base/fs/rules.mk @@ -1,3 +1,6 @@ SRCS_$(d)+=\ + $(d)/fs/basename.c\ + $(d)/fs/dirname.c\ + $(d)/fs/exists.c\ $(d)/fs/walk.c\ $(d)/fs/walker.c\ |