Skip to content
Snippets Groups Projects
Select Git revision
  • 45e6332de26ea073450e68597ae452d86c37c2fe
  • master default protected
  • v3-modify-mail
  • snyk-fix-207483a1e839c807f95a55077e86527d
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_ru
  • translations_6e4a5e377a3e50f17e6402264fdbfcc6_ru
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_fa_IR
  • translations_en-yml--master_fa_IR
  • snyk-fix-7d634f2eb65555f41bf06d6af930e812
  • translations_en-yml--master_ar
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_el
  • jfederico-patch-1
  • v2
  • v3
  • v1
  • release-3.1.0.2
  • release-3.1.0.1
  • release-3.1.0
  • release-2.14.8.4
  • release-3.0.9.1
  • release-3.0.9
  • release-3.0.8.1
  • release-2.14.8.3
  • release-3.0.8
  • release-3.0.7.1
  • release-2.14.8.2
  • release-3.0.7
  • release-3.0.6.1
  • release-3.0.6
  • release-3.0.5.4
  • release-3.0.5.3
  • release-2.14.8.1
  • release-3.0.5.2
  • release-3.0.5.1
  • release-3.0.5
35 results

jest.config.js

Blame
  • make-zombies-1.c 1.37 KiB
    #include <stdio.h>
    #include <sys/wait.h>
    #include <stdlib.h>
    #include <unistd.h>
     
    int main(void){
        pid_t pids[10]; // Platz für 10 Prozess-IDs (die Kindprozesse)
        int i; // Laufvariable
     
        for (i = 0; i < 10; ++i) {
            // Der Vaterprozess erzeugt nun einen Kindprozess,
            // welcher unabhängig vom Vaterprozess mit der
            // erneuten Ausführung des Programms beginnt.
            // Ein Kindprozess erzeugt keinen Fork von sich selbst.
            pids[i] = fork();
            if (pids[i] == 0) {
                // dann befinden wir uns in einem der 10 Kindprozesse
                // Der erste Kindprozess wartet 10 Sekunden und jeder
                // weitere Kindprozess wartet 1 Sekunde kürzer als der
                // vorige.
                printf ("%d BRAINS! ", i);
                sleep(10-i);
                exit(0); // Kindprozess erfolgreich beenden
            }
        }
    
    //
        // hier kommt nur der Vaterprozess vorbei
        for (i = 0; i < 10; ++i){
            // Der Vaterprozess wartet nun, bis der Reihe nach jeder
            // seiner 10 Kindprozesse beendet ist. Leider wird auf das
            // Kind mit der längsten Wartezeit zuerst gewartet. Obwohl
            // die anderen Kinder längst erfolgreich beendet wurden,
            // blockiert das erste Kind eine Bereinigung der Prozesstabelle
            waitpid(pids[i], NULL, 0);
        }
    //
    
    //    while (1);
        return 0; // Vaterprozess erfolgreich beenden
    }