From 4d76c904a2af8a3faa79c6d65aed90c8b12f4b40 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 19 Apr 2014 20:29:59 +0300 Subject: [PATCH] os: Add read & write functions. --- os/os.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/os/os.py b/os/os.py index 07def985..6bd1dddd 100644 --- a/os/os.py +++ b/os/os.py @@ -5,6 +5,8 @@ libc = ffi.open("libc.so.6") errno = libc.var("i", "errno") mkdir_ = libc.func("i", "mkdir", "si") +read_ = libc.func("i", "read", "iPi") +write_ = libc.func("i", "write", "iPi") def check_error(ret): @@ -15,3 +17,14 @@ def check_error(ret): def mkdir(name, mode=0o777): e = mkdir_(name, mode) check_error(e) + +def read(fd, n): + buf = bytearray(n) + r = read_(fd, buf, n) + check_error(r) + return buf[:r] + +def write(fd, buf): + r = write_(fd, buf, len(buf)) + check_error(r) + return r