From 4fbf50ddfeeb0e9d99d271e31dd35d545fb42ab6 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Tue, 21 Apr 2020 10:40:03 -0700 Subject: feat: added wrapper for io --- sys/libn/io.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 sys/libn/io.c (limited to 'sys/libn/io.c') diff --git a/sys/libn/io.c b/sys/libn/io.c new file mode 100644 index 0000000..789bc7b --- /dev/null +++ b/sys/libn/io.c @@ -0,0 +1,71 @@ +#include +#include + +// ----------------------------------------------------------------------- +// Open/Close + +Stream* +io·open(byte *name, byte *mode) +{ + return fopen(name, mode); +} + +error +io·close(Stream *s) +{ + return fclose(s); +} + +// ----------------------------------------------------------------------- +// Reading + +byte +io·getbyte(Stream *s) +{ + return fgetc(s); +} + +vlong +io·read(Stream *s, int sz, int n, void *buf) +{ + return fread(buf, sz, n, s); +} + +int +io·readln(Stream *s, int n, byte* buf) +{ + byte* b; + b = fgets(buf, n+1, s); + + return strlen(buf); +} + +// ----------------------------------------------------------------------- +// Writing + +error +io·putbyte(Stream *s, byte c) +{ + return fputc(c, s); +} + +int +io·putstring(Stream *s, string str) +{ + return fputs(str, s); +} + +vlong +io·write(Stream *s, int sz, int n, void *buf) +{ + return fwrite(buf, sz, n, s); +} + +// ----------------------------------------------------------------------- +// Seek + +int +io·seek(Stream *s, long off, enum SeekPos origin) +{ + return fseek(s, off, origin); +} -- cgit v1.2.1