3

exec.Cmd の配列を作成し、それらをパイプして squid オーセンティケーターを作成したいと考えています。ファイル内のコマンドに引数がない場合に機能します。引数を指定すると、EOFのみが読み取られます。argv 配列を確認しましたが、その内容は問題ありません。

コードの関連部分は次のとおりです。

func initCmd(file *os.File) []* exec.Cmd {
    var cmd     [MAX_PROC]* exec.Cmd;
    var e       os.Error

    // Initialize the commands in the config file
    environ := os.Environ();
    var i int
    for i=0; i < MAX_PROC; i++ {
        line := getLine(file)
        if line == "" { break }
        parts := strings.Fields(line)
        cmd[i], e = exec.Run(parts[0], parts[1:], environ, 
                             exec.Pipe, exec.Pipe, exec.Pipe)
        exitOnError(&e)
    }
    return cmd[0:i]
}

何か案は?ありがとう。

PS:参考になれば、完全なプログラム ソースはgithubにあります。

4

1 に答える 1

4

args には arg0 も含める必要があります。exec.Run(parts[0],parts)を試す

これがいかに混乱を招くかについてイシューをオープンしましたが、彼らは意図したとおりに機能していると主張しています: http://code.google.com/p/go/issues/detail?id=428

于 2010-01-27T17:02:16.810 に答える