os: Implement popen().

pull/142/head
Paul Sokolovsky 2016-12-21 00:11:23 +03:00
rodzic 92d32a6cd8
commit d47419bb73
1 zmienionych plików z 20 dodań i 0 usunięć

Wyświetl plik

@ -254,3 +254,23 @@ def urandom(n):
import builtins
with builtins.open("/dev/urandom", "rb") as f:
return f.read(n)
def popen(cmd, mode="r"):
import builtins
i, o = pipe()
if mode[0] == "w":
i, o = o, i
pid = fork()
if not pid:
if mode[0] == "r":
close(1)
else:
close(0)
close(i)
dup(o)
close(o)
s = system(cmd)
_exit(s)
else:
close(o)
return builtins.open(i, mode)