我从golang.org阅读了解释,它如下所示。
// ExtraFiles specifies additional open files to be inherited by the
// new process. It does not include standard input, standard output, or
// standard error. If non-nil, entry i becomes file descriptor 3+i.
//
// BUG: on OS X 10.6, child processes may sometimes inherit unwanted fds.
// http://golang.org/issue/2603
ExtraFiles []*os.File
我不是很了解吗?例如我在下面有这样的代码。
cmd := &exec.Cmd{
Path: init,
Args: initArgs,
}
cmd.Stdin = Stdin
cmd.Stdout = Stdout
cmd.Stderr = Stderr
cmd.Dir = Rootfs
cmd.ExtraFiles = []*os.File{childPipe}
那是说,既然我已经写了childpipe cmd.ExtraFiles = []*os.File{childPipe},我可以写的fd使用它3直接。
pipe = os.NewFile(uintptr(3), "pipe")
json.NewEncoder(pipe).Encode(newThing)
谢谢如果有人可以提供一些帮助!
素胚勾勒不出你
相关分类