Exec
path - 新プロセスイメージとして実行すべきファイルのパス名を指定する。
file - 新プロセスイメージとして実行すべきファイルのパス名を指定する。ただしスラッシュが含まれていない場合は環境変数 PATH を使って実行すべきファイルのパス名を検索する。
arg0 - 実行ファイルの名前(へのポインタ)。arg0 から新プロセスイメージに渡される引数のポインタが続く。arg0 は通常 path または file と同じである。arg0 を使って自身の位置を知ろうとする実行ファイルもあるが、それが正しいかどうかは保証されない。
argv - 新プロセスイメージに渡す引数群へのポインタ配列。
envp - 環境変数群のポインタ配列。
envpの指す配列は、ヌル終端の文字列へのポインタ配列であり、個々の文字列は次の形式である。
name=value
ここで、name は環境変数名、value はその変数の値である。envp 配列の最後には必ずnullがなければならない。envp 自体がnullの場合は、現在の環境変数設定をそのまま受け継ぐ。
POSIX標準では unistd.h、DOSやOS/2やWindowsでは process.h に exec 関数群が宣言されている。
int execl(char const *path, char const *arg0, ...);
int execle(char const *path, char const *arg0, ..., char const * const *envp);
int execlp(char const *file, char const *arg0, ...);
int execv(char const *path, char const * const * argv);
int execve(char const *path, char const * const *argv, char const * const *envp);
int execvp(char const *file, char const * const *argv);
実装によっては、関数名のプレフィックスとしてアンダースコアを付けている場合がある(例えば、_execl)。
現代のたいていのUnixにおける実装では、最も汎用的なexecveをシステムコールとし(すなわちexecve(2))、他はそれを呼ぶライブラリ関数(たとえばexec(3))としている。