ホームページ >運用・保守 >Linuxの運用と保守 >Linuxのフォーク機能とは何ですか
Linux の "fork()" は、新しいプロセスを作成するために使用されるシステム コール関数です。子プロセスと呼ばれる、現在のプロセスのコピーを作成します。子プロセスは親プロセスとほぼ同じです。コード、データ、オープン ファイル記述子などを含む、プロトタイプ「pid_t fork(void);」があります。
Linux では、fork() は新しいプロセスを作成するために使用されるシステム コール関数です。この関数は、子プロセスと呼ばれる現在のプロセスのコピーを作成します。子プロセスは、コード、データ、開いているファイル記述子などを含め、親プロセスとほぼ同じです。
fork() 関数のプロトタイプは次のとおりです。
#include <sys/types.h> #include <unistd.h> pid_t fork(void);
このうち、pid_t はプロセス ID (PID) を表すために使用される整数型です。 fork() 関数にはパラメータがありません。
fork() 関数が呼び出された後、2 つの戻り値があります:
したがって、fork()の戻り値を判断することで、現在のコードが親プロセスで実行されるか、子プロセスで実行されるかを判断できます。
以下は、fork() 関数の基本的な使用法を示す簡単なサンプル コードです。
#include <stdio.h> #include <unistd.h> int main() { pid_t pid = fork(); if (pid < 0) { fprintf(stderr, "Fork failed. "); return 1; } else if (pid == 0) { printf("This is the child process. PID: %d ", getpid()); } else { printf("This is the parent process. Child PID: %d ", pid); } return 0; }
上記のコードでは、fork() 関数を呼び出し、現在の値に基づいて決定します。戻り値について 親プロセスまたは子プロセスで。親プロセスでは子プロセスの PID を出力し、子プロセスでは独自の PID を出力します。
fork() 関数は、ヒープ、スタック、グローバル変数を含む、親プロセスのメモリを子プロセスに完全にコピーすることに注意してください。したがって、fork() の後、親プロセスと子プロセスは、互いに干渉することなく、それぞれのコードを別々に実行します。
以上がLinuxのフォーク機能とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。