tail head cat sleep
QR code linking to this page

manページ  — FORK

名称

fork – 新しいプロセスを作成する

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <sys/types.h>
#include <unistd.h>

pid_t
fork(void);

解説

fork() システムコールによって新しいプロセスの作成が行われます。 新しいプロセス (子プロセス)は、 以下の項目を除いた呼び出しプロセス (親プロセス) の正確なコピーです。

戻り値

正常に完了した場合、 fork() は、子プロセスに値 0 を返し、子プロセスのプロセス ID を親プロセスに返します。 そうでない場合は -1 が親プロセスに返され、子プロセスは作成されずに、 エラーを示すためにグローバル変数 errno が設定されます。

エラー

次の場合に fork() システムコールは処理に失敗し、子プロセスは作成されません:
[EAGAIN]
  実行中のプロセスの合計数がシステムの限界を超えます。 限界値は sysctl(3) の MIB 変数の KERN_MAXPROC によって指定されます (スーパユーザを除いて、 実際には限界はこれより 10 個少なくなります)。
[EAGAIN]
  ユーザがスーパユーザでなく、 1 人のユーザによって実行中のプロセスの合計数が、システムの限界を越えます。 限界は sysctl(3) の MIB 変数の KERN_MAXPROCPERUID によって指定されます。
[EAGAIN]
  ユーザがスーパユーザでなく、 resource 引数の RLIMIT_NPROC に対応するソフトリソース限界を越えます (getrlimit(2) を参照)。
[ENOMEM]
  新しいプロセス用のスワップ空間が不充分です。

関連項目

execve(2), rfork(2), setitimer(2), setrlimit(2), vfork(2), wait(2)

歴史

fork() 関数は AT&T v6 で登場しました。

FORK (2) June 4, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.