exec.Run и ARGV проблема - PullRequest
       11

exec.Run и ARGV проблема

3 голосов
/ 27 января 2010

Я хочу создать массив 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 .

1 Ответ

4 голосов
/ 27 января 2010

Аргументы должны также включать arg0. Попробуйте exec.Run (части [0], части)

Я открыл вопрос о том, как это сбивает с толку, но они утверждают, что это работает как задумано: http://code.google.com/p/go/issues/detail?id=428

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...