CLONE(2) Linux Programmer's Manual CLONE(2) 名前 clone - 子プロセスを作る 書式 #include <linux/sched.h> #include <linux/unistd.h> pid_t clone(void *sp, unsigned long flags) 説明 clone は fork のための別のインターフェースで、より多くのオプションを持つ。 fork は clone(0, SIGCLD|COPYVM) に等しい。 sp がゼロでなれば、子プロセス(chile process)は sp を初期スタック・ポインターとして使用する。 flags の下位バイトは子プロセスが死んだ場合に親(parent)に送るべき シグナル(signal)を含んでいる。 flags は COPYVM と COPYFD のどちらか、または両方との ビットOR でもよい。 COPYVM が設定されると、子ページ(child page) は親ページ(parent page)の 書き込みのためのコーピー(copy-on- write)イメージになる。 COPYVM が設定されていなければ、子プロセスは親と同じページを共有し、 子と親は同じデータに書き込むことができる。 COPYFD が設定されると、子のファイル・ディスクリプター(file descriptor)は 親のファイル・ディスクリプターのコピーになる。 COPYFD が設定されていなければ、子のファイル・ディスクリプターは親と 共有される。 返り値 成功した場合、親の実行スレッド(thread of execution)には子プロセスの PID が返され、子の実行スレッドには 0 が返される。失敗した場合には 親に -1 が返され、子プロセスは作られず、 errno が適切に設定される。 エラー EAGAIN fork で親のページ・テーブルをコピーするのに十分なメモリーを確保できなかったか 子のためのタスク構造体(task structure)を確保できなかった。 バグ このマニュアルページは、非常に古いものである。正確な情報を得るためには、 別な情報源をあたって欲しい。 準拠 このコールは Linux 特有であり、移植を意図したプログラムで使用してはいけない。 関連項目 fork(2) Linux 1.2.9 10 June 1995 CLONE(2)