diff options
Diffstat (limited to 'src/user/lib/stdio')
-rw-r--r-- | src/user/lib/stdio/file.c | 16 | ||||
-rw-r--r-- | src/user/lib/stdio/misc.c | 21 |
2 files changed, 36 insertions, 1 deletions
diff --git a/src/user/lib/stdio/file.c b/src/user/lib/stdio/file.c index 63b004d..8c0fc57 100644 --- a/src/user/lib/stdio/file.c +++ b/src/user/lib/stdio/file.c @@ -1,11 +1,12 @@ #include "file.h" -#include <camellia/syscalls.h> #include <camellia/flags.h> +#include <camellia/syscalls.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> +#include <user/lib/panic.h> static FILE _stdin_null = { .fd = STDIN_FILENO }; static FILE _stdout_null = { .fd = STDOUT_FILENO }; @@ -124,6 +125,13 @@ int pclose(FILE *f) { return -1; } +// TODO tmpfile() +FILE *tmpfile(void) { + errno = ENOSYS; + return NULL; +} + + int fextflags(FILE *f, int extflags) { int old = f->extflags; f->extflags = extflags; @@ -227,6 +235,12 @@ int fputc(int c, FILE *f) { } int putc(int c, FILE *f) { return fputc(c, f); } +// TODO ungetc +int ungetc(int c, FILE *f) { + (void)c; (void)f; + __libc_panic("unimplemented"); +} + int fseek(FILE *f, long offset, int whence) { return fseeko(f, offset, whence); } diff --git a/src/user/lib/stdio/misc.c b/src/user/lib/stdio/misc.c index 8f872ec..d74c197 100644 --- a/src/user/lib/stdio/misc.c +++ b/src/user/lib/stdio/misc.c @@ -1,5 +1,7 @@ #include <errno.h> #include <stdio.h> +#include <string.h> +#include <unistd.h> void perror(const char *s) { if (s) fprintf(stderr, "%s: ", s); @@ -23,3 +25,22 @@ off_t lseek(int fd, off_t off, int whence) { errno = ENOSYS; return -1; } + +int remove(const char *path) { + return unlink(path); +} + +// TODO! VFSOP_MOVE +int rename(const char *old, const char *new) { + (void)old; (void)new; + errno = ENOSYS; + return -1; +} + +// TODO tmpnam +char *tmpnam(char *s) { + static char buf[L_tmpnam]; + if (!s) s = buf; + strcpy(s, "/tmp/tmpnam"); + return s; +} |