Also ich beschäftige mich gerade mit Processen in C und bin mal wieder dezent verwirrt xD
Soweit ich es verstanden erstelle ich mit einem fork() aufruf immer einen Kindprozess des aktuellen Prozesses. Jedoch startet dieser Prozess soweit ich verstehe immer in Programm Zeile 0 (also ganz oben in der Main Methode). Ich würde gerne ein Programm schreiben, dass alle 3 Sekunden einen Kindprozess mit fork() erstellt und dann die aktuelle PID printet. Danach soll der Kindprozess wieder geclosed werden und zurück in den Hauptprozess gesprungen werden xD Das ganze würde ich gerne 5 mal wieder holen.
Ich hatte das ganze sehr naiv mit einer Schleife probiert und mit sleep(3); jedoch wurde ca 200 prints ausgeführt xD Das liegt vermutlich daran dass ich nicht ganz verstehe wie ich einen Prozess gescheit close
Hier ist mal der Code, welchen ich bis jetzt haben:
Soweit ich es verstanden erstelle ich mit einem fork() aufruf immer einen Kindprozess des aktuellen Prozesses. Jedoch startet dieser Prozess soweit ich verstehe immer in Programm Zeile 0 (also ganz oben in der Main Methode). Ich würde gerne ein Programm schreiben, dass alle 3 Sekunden einen Kindprozess mit fork() erstellt und dann die aktuelle PID printet. Danach soll der Kindprozess wieder geclosed werden und zurück in den Hauptprozess gesprungen werden xD Das ganze würde ich gerne 5 mal wieder holen.
Ich hatte das ganze sehr naiv mit einer Schleife probiert und mit sleep(3); jedoch wurde ca 200 prints ausgeführt xD Das liegt vermutlich daran dass ich nicht ganz verstehe wie ich einen Prozess gescheit close
Hier ist mal der Code, welchen ich bis jetzt haben:
C:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>
int main(){
int process = 0;
for(int i = 1; i <= 5; i++){
process = fork();
printf("Iteration: %d | PID: %d \n",i, process);
//exit(EXIT_SUCCESS);
sleep(3);
}
return 0;
}