diff options
Diffstat (limited to 'src/user/lib/sysstat.c')
-rw-r--r-- | src/user/lib/sysstat.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/user/lib/sysstat.c b/src/user/lib/sysstat.c index df192c5..97bb50b 100644 --- a/src/user/lib/sysstat.c +++ b/src/user/lib/sysstat.c @@ -1,7 +1,33 @@ +#include <camellia.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/stat.h> +#include <unistd.h> + +int fstat(int fd, struct stat *sb) { + (void)fd; + memset(sb, 0, sizeof sb); + // TODO save info if it was a dir + sb->st_mode = 0777 | S_IFREG; + return 0; +} + +int stat(const char *restrict path, struct stat *restrict sb) { + int fd, ret; + fd = camellia_open(path, OPEN_READ); + if (fd < 0) { + return -1; + } + ret = fstat(fd, sb); + close(fd); + return ret; +} + +int lstat(const char *restrict path, struct stat *restrict sb) { + // TODO assumes no symlink support + return stat(path, sb); +} int mkdir(const char *path, mode_t mode) { // TODO error when directory already exits |