C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++でfork()を使用した親プロセスと子プロセスでの計算


このセクションでは、fork()を使用してC++で子プロセスを作成する方法を説明します。また、各プロセスに対していくつかの計算を行います。したがって、親プロセスでは配列のすべての偶数の合計を見つけ、子プロセスでは配列要素から奇数の合計を数えます。

fork()が呼び出されると、値が返されます。値が0より大きい場合、現在は親プロセスにあり、そうでない場合は子プロセスにあります。したがって、これを使用して、プロセスを区別できます。

サンプルコード

#include <iostream>
#include <unistd.h>
using namespace std;
int main() {
   int a[15] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 , 11, 12, 13, 14, 15};
   int odd_sum = 0, even_sum = 0, n, i;
   n = fork(); //subdivide process
   if (n > 0) { //when n is not 0, then it is parent process
      for (int i : a) {
         if (i % 2 == 0)
         even_sum = even_sum + i;
      }
      cout << "Parent process " << endl;
      cout << "Sum of even numbers: " << even_sum << endl;
   } else { //when n is 0, then it is child process
      for (int i : a) {
         if (i % 2 != 0)
            odd_sum = odd_sum + i;
      }
      cout << "Child process " <<endl;
      cout << "Sum of odd numbers: " << odd_sum << endl;
   }
   return 0;
}

出力

Parent process
Sum of even numbers: 56
Child process
Sum of odd numbers: 64

  1. C++を使用してサッカーの五角形と六角形の数を見つける

    ご存知のように、五角形と六角形はサッカーの重要な部分です。これらの形状は、完全な球形を形成するためのパズルのように組み合わされます。ですから、ここにサッカーがあり、六角形と五角形を見つける必要があります。 問題を簡単に解決するためにオイラー標数を使用します。オイラー標数は、位相空間の特定の形状または構造を記述するために機能する数値です。したがって、サッカーの五角形と六角形の数を計算するために使用できます。 オイラー標数- chi(S) −比表面積Sの整数 F −顔 G −グラフ V −頂点 E −エッジはSに埋め込まれています。 V - E + F

  2. C ++を使用してOpenCVで画像をロードして表示するにはどうすればよいですか?

    このトピックでは、C++でOpenCVを使用して画像を読み込んで表示する方法を決定します。 OpenCVで画像を読み込んで表示するには、次の機能が必要です。 マット: マットは機能ではありません。これはデータ構造であり、変数の一種です。 C ++のint、char、string変数タイプと同様に、MatはOpenCVの変数であり、その中に画像をロードするためのマトリックスデータ構造を作成します。このプログラムでは、「MatmyImage;」と書きました。 これは、myImageという名前の行列変数を宣言していることを意味します。 namedWindow(): メモリを割り当て、画像を