複数のプログラムをC言語で実行する方法

C言語で複数のプログラムを実行するには、マルチスレッドまたはマルチプロセスの方法を使用できます。

  1. マルチスレッド:pthread ライブラリを使用して、複数のスレッドを作成および管理します。 まず、pthread.h ヘッダファイルをインクルードする必要があります。 次に、pthread_create 関数を使用して新しいスレッドを作成し、実行する関数を指定できます。 たとえば:
  2. pthread.hをインクルードvoid* myFunction(void* arg) {
    // ここにスレッドのコードロジック
    }

    int main() {
    pthread_t thread1, thread2;
    pthread_create(&thread1, NULL, myFunction, NULL);
    pthread_create(&thread2, NULL, myFunction, NULL);

    // 他のメインスレッドのコードロジックを実行する
    // …

    pthread_join(thread1, NULL);
    pthread_join(thread2, NULL);

    return 0;
    }

  3. 上記のコードは pthread_create 関数を使用して thread1 と thread2 という 2 つの新しいスレッドを作成し、関数 myFunction をスレッドのエントリーポイントとして指定しています。pthread_join 関数を使用してスレッドの終了を待機します。
  4. マルチプロセス:
    fork関数を使って新しいプロセスを作成し、子プロセスで異なるプログラムを実行できます。たとえば:
  5. #include <sys/types.h>
    #includeint main() {
    pid_t pid = fork();
    if (pid == 0) {
    // 子プロセス のコードロジック
    execl(“/path/to/program1”, “program1”, NULL);
    } else if (pid > 0) {
    // 親プロセス のコードロジック
    pid_t pid2 = fork();
    if (pid2 == 0) {
    // 2 つ目の 子プロセス のコードロジック
    execl(“/path/to/program2”, “program2”, NULL);
    }
    } else {
    // プロセス の生成に失敗
    }

    // 主プロセス のコードロジックを実行
    // …

    return 0;
    }

  6. fork 関数で新しいプロセスを 2 つ作成し、子プロセスは execl 関数で異なるプログラム (program1, program2) を実行します。親プロセスは別のコードのロジックの実行を継続できます。

マルチスレッドとマルチプロセスの利用は、具体的なニーズや場面に応じて選択する必要があることに注意してください。マルチスレッドは、複数のタスクを同時に実行する場合に適しており、スレッド間でメモリを共有できます。一方、マルチプロセスは、複数の独立したタスクを並行して実行する場合に適しており、各プロセスには独自のメモリ空間があります。

bannerAds