ホームページ >運用・保守 >Linuxの運用と保守 >Linuxのフォーク機能とは何ですか

Linuxのフォーク機能とは何ですか

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌オリジナル
2024-01-25 11:20:341149ブラウズ

Linux の "fork()" は、新しいプロセスを作成するために使用されるシステム コール関数です。子プロセスと呼ばれる、現在のプロセスのコピーを作成します。子プロセスは親プロセスとほぼ同じです。コード、データ、オープン ファイル記述子などを含む、プロトタイプ「pid_t fork(void);」があります。

Linuxのフォーク機能とは何ですか

Linux では、fork() は新しいプロセスを作成するために使用されるシステム コール関数です。この関数は、子プロセスと呼ばれる現在のプロセスのコピーを作成します。子プロセスは、コード、データ、開いているファイル記述子などを含め、親プロセスとほぼ同じです。

fork() 関数のプロトタイプは次のとおりです。

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

pid_t fork(void);

このうち、pid_t はプロセス ID (PID) を表すために使用される整数型です。 fork() 関数にはパラメータがありません。

fork() 関数が呼び出された後、2 つの戻り値があります:

  • 親プロセスでは、fork() は子プロセスの PID (ID子プロセスの)。
  • 子プロセスでは、fork() は 0 を返します。

したがって、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。