package main

import "fmt"
import "os"


func reader(file *os.File) {
  var b []byte = make([]byte, 1024)
  var err os.Error = nil
  for err == nil {
    var n int
    n, err = file.Read(b)
    fmt.Printf("data: %d, %s\n", n, b)
  }
}

func main() {
  var name = "/usr/bin/bc"
  var argv = []string{ "bc" }
  var envv = []string{ "FOO=23" }
  //var chroot = false
  var dir = "/var/empty"
  var files [3][2]*os.File
  var err os.Error
 
  for i, _ := range files {
    files[i][0], files[i][1], err = os.Pipe()
    err = err
  }

  var attr = &os.ProcAttr{
    Dir: dir,
    Env: envv,
    Files: []*os.File{ /*files[0][0] */ os.Stdin, files[1][1], files[2][1]},
  }

  var p *os.Process

  p, err = os.StartProcess(name, argv, attr)

  for _, file := range attr.Files {
    file.Close()
  }

  p=p

  go reader(files[1][0])
  reader(files[2][0])

  fmt.Printf("hello, world\n")

}