aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/old/vlib/os2/os2_darwin.c.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/old/vlib/os2/os2_darwin.c.v')
-rw-r--r--v_windows/v/old/vlib/os2/os2_darwin.c.v36
1 files changed, 36 insertions, 0 deletions
diff --git a/v_windows/v/old/vlib/os2/os2_darwin.c.v b/v_windows/v/old/vlib/os2/os2_darwin.c.v
new file mode 100644
index 0000000..b04ee11
--- /dev/null
+++ b/v_windows/v/old/vlib/os2/os2_darwin.c.v
@@ -0,0 +1,36 @@
+module os2
+
+#include <fcntl.h>
+
+struct File {
+ fd int
+}
+
+fn C.perror(&char)
+
+fn C.open(&byte, int, int) int
+
+fn C.write(voidptr, &byte, int) int
+
+fn C.close(int) int
+
+pub fn create(path string) ?File {
+ fd := C.open(path.str, C.O_CREAT | C.O_TRUNC | C.O_WRONLY, o644) // 511
+ if fd == -1 {
+ return error('failed to create "$path":')
+ // os.print_c_errno()
+ }
+ return File{fd}
+}
+
+pub fn (f File) writeln(s string) {
+ ss := s + '\n'
+ ret := C.write(f.fd, ss.str, s.len + 1)
+ if ret == -1 {
+ C.perror('failed to write')
+ }
+}
+
+pub fn (f File) close() {
+ C.close(f.fd)
+}