IT用語集 › プログラミング › exec

exec

プログラミング Svenska → 更新: 2026-10-22

プロセスの中身を別のプログラムに入れ替えるシステムコール。プロセスは同じで、コードだけが新しくなる。

fork()が新しいプロセスを作るのに対し、exec()はプロセスそのものは保ったまま、メモリを破棄し、新しい実行ファイルを読み込み、そのエントリポイントから開始する。PID、開いているファイル記述子、作業ディレクトリは引き継がれる。成功した場合、この呼び出しは戻ってこない。戻るべきコードがもう残っていないからだ。

forkしてからexecする組み合わせがUnixのプログラム起動の流儀で、二つに分かれているのには意図がある。両者の間に、子プロセスは新しいプログラムに適用すべき設定を変えられる。標準出力のリダイレクト、環境変数の設定、権限の放棄などだ。>を含むコマンドを打ったとき、シェルがやっているのがまさにそれである。

← 用語集に戻る