小编use*_*961的帖子

如何让stdin在golang中执行cmd

我有这个代码

subProcess := exec.Cmd{
    Path: execAble,
    Args: []string{
        fmt.Sprintf("-config=%s", *configPath),
        fmt.Sprintf("-serverType=%s", *serverType),
        fmt.Sprintf("-reload=%t", *reload),
        fmt.Sprintf("-listenFD=%d", fd),
    },
    Dir: here,
}
subProcess.Stdout = os.Stdout
subProcess.Stderr = os.Stderr
logger.Info("starting  subProcess:%s ", subProcess.Args)

if err := subProcess.Run(); err != nil {
    logger.Fatal(err)
}
Run Code Online (Sandbox Code Playgroud)

然后我做os.Exit(1)来停止主进程

我可以从子进程获得输出

但我也想把stdin放进去

我试试

subProcess.Stdin = os.Stdin
Run Code Online (Sandbox Code Playgroud)

但它不起作用

go

14
推荐指数
2
解决办法
2万
查看次数

如何使用反射在golang中使用给定名称(字符串)创建数组

我想在golang中使用name创建数组,但是我在这里得到一些错误是我的代码包main

import (
    "fmt"
    "reflect"
)

type My struct{
    Name string
    Id int
}

func main() {
    my := &My{}
    myType := reflect.TypeOf(my)
    fmt.Println(myType)
    //v := reflect.New(myType).Elem().Interface()

    // I want to make array  with My
    //a := make([](myType.(type),0)  //can compile
    //a := make([]v.(type),0)  ////can compile
    fmt.Println(a)
}
Run Code Online (Sandbox Code Playgroud)

reflection go

5
推荐指数
2
解决办法
4867
查看次数

标签 统计

go ×2

reflection ×1