clone

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)