如何使用Go的os / exec库将错误消息输入到我的Go程序中?

时间:2013-11-21 20:07:24

标签: go

我正在运行执行“psql”的代码。它应该返回一些错误代码,因为数据库没有启动。

它应该返回

psql: could not connect to server: No such file or directory    Is the server running locally and accepting     connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

然而它返回

的标准错误
2013/11/21 15:06:19 exit status 2
exit status 1

这是代码

package main

import (
        "fmt"
        "log"
        "os/exec"

)

func main() {
        out, err := exec.Command("psql").Output()
        if err != nil {
                log.Fatal(err)
        }
        fmt.Printf("%s\n",out)
}

1 个答案:

答案 0 :(得分:2)

因为输出只返回STDOUT中的数据,而psql错误是在STDERR流上打印该数据

您需要阅读STDERR:

func (c *Cmd) StderrPipe() (io.ReadCloser, error)