import "exec"

execパッケージは、外部コマンドを実行します。

パッケージファイル

exec.go lp_unix.go lp_windows.go

定数

実行する引数。

const (
    DevNull = iota
    PassThrough
    Pipe
    MergeWithStdout
)

LookPath関数

func LookPath(file string) (string, os.Error)

LookPathは、PATH環境変数にて指定されたディレクトリから実行可能なバイナリファイルを検索します。ファイルにスラッシュが含まれるときは、PATH環境変数を参照せずに直接ディレクトリを検索します。

Cmd型

Cmdは、実行コマンドを表します。Stdin、Stdout、およびStderrの各Fileは、実行しているコマンドの標準入力、出力、エラーにそれぞれ接続しているパイプを表しているか、もしくはnilで、これはRunへ渡した引数に依存します。Pidは実行している外部コマンドのオペレーティングシステムのプロセスIDを表しています。

type Cmd struct {
    Stdin  *os.File
    Stdout *os.File
    Stderr *os.File
    Pid    int
}

Run関数

func Run(name string, argv, envv []string, dir string, stdin, stdout, stderr int) (p *Cmd, err os.Error)

Runは、引数argv、環境envvを使ってnameで指定されたバイナリプログラムの実行を開始します。この関数は、コマンドを表す新しCmdへのポインタとエラーを返します。

パラメータのstdin、stdout、およびstderrは標準入力、出力、およびエラー出力の扱いを指定します。選択肢としてDevNull(/dev/nullへの接続)、PassThrough(カレントプロセスの標準ストリームへの接続)、Pipe(オペレーティングシステムのパイプへの接続)、MergeWithStdout(標準エラーのみ。標準出力に使用したのと同じファイルデスクリプタを使用してください)があります。パラメータがPipeの場合、返されるCmdの対応するフィールド(Stdin、Stdout、Stderr)はパイプの反対側となります。それ以外のときはCmd内のフィールドはnilとなります。

(*Cmd) Close関数

func (p *Cmd) Close() os.Error

Closeは、まだ終了していなければコマンドpの実行終了を待ち、そのあとファイルデスクリプタのp.Stdin、p.Stdout、p.Stderrのうちnilではないものを閉じます。

(*Cmd) Wait関数

func (p *Cmd) Wait(options int) (*os.Waitmsg, os.Error)

Waitは、実行中のコマンドpの終了を待ち、os.Waitより返されるWaitmsgとエラーを返します。optionsに指定した値はos.Waitに受け渡され、値が0のときはコマンドpが終了するのを待ちます。optionsに他の値を指定したときは他のプロセスのイベントを返す原因となります。詳しくはosパッケージを参照してください。