如何在Golang中向已打开的文件描述符写入数据?

7

我有以下已打开的文件描述符(通过lsof输出):

auth    11780 root    5w  FIFO               0,10      0t0  72061824 pipe

我需要用Go语言在FD 5(FIFO)中写入一些内容。在C语言中,可以通过系统调用write()来完成:

19270 write(5, "*************", 12 <unfinished ...>

Thank you in advance!


FD 5 是由父进程打开的。 - Zhivko Angelov
1个回答

8
使用os.NewFile通过文件描述符来“打开”一个已存在的文件:
func NewFile(fd uintptr, name string) *File

NewFile returns a new File with the given file descriptor and name.

file := os.NewFile(5, "pipe")
_, err := file.Write([]byte(`my data`))
if err != nil {
    panic(err)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接