summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/os/os_file.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/os/os_file.go b/src/lib/os/os_file.go
index c6c641bb5..0b1d2e0df 100644
--- a/src/lib/os/os_file.go
+++ b/src/lib/os/os_file.go
@@ -82,3 +82,12 @@ func (fd *FD) WriteString(s string) (ret int, err *Error) {
r, e := syscall.write(fd.fd, &b[0], int64(len(s)));
return int(r), ErrnoToError(e)
}
+
+export func Pipe() (fd1 *FD, fd2 *FD, err *Error) {
+ var p [2]int64
+ r, e := syscall.pipe(&p);
+ if e != 0 {
+ return nil, nil, ErrnoToError(e)
+ }
+ return NewFD(p[0]), NewFD(p[1]), nil
+}