標準入力経由で外部プログラムにユーザー資格情報を入力する
外部コマンドを実行し、プログラム内からユーザー資格情報を提供するシナリオを考えてみましょう。囲碁プログラム。このコマンドは、別のフィールドにユーザー名とパスワードの入力を求めるプロンプトを表示します。 stdin を使用してこれらのフィールドに順番に入力する方法を決定するのは難しい場合があります。
解決策: bytes.Buffer の利用
これに対処するには、bytes.Buffer タイプを利用します。これにより、バイト データの書き込みと読み取りのためのバッファの作成が可能になります。次の手順に従ってください:
サンプル コード:
<code class="go">login := exec.Command(cmd, "login") var b bytes.Buffer b.Write([]byte(username + "\n" + pwd + "\n")) login.Stdout = os.Stdout login.Stdin = &b login.Stderr = os.Stderr err := login.Run() if err != nil { fmt.Fprintln(os.Stderr, err) }</code>
このアプローチは、stdin が文字列に遭遇するまで文字を読み取るという事実を利用します。改行。バッファを標準入力に送ることにより、コマンドはあいまいさを生じることなく資格情報を順番に読み取ります。
以上がGo の Stdin 経由で外部プログラムにユーザー資格情報を入力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。