I in C-System-Programmierung bin neuProgramm, das PID wechselt alle n Sekunden
Hier Ich versuche, ein Programm zu schreiben, das sein PID wechselt alle (n = 2) Sekunden. Aber beim Kompilieren bekomme ich jedes Mal die gleiche PID. Die PID ändert sich nie. Hat jemand eine Idee, bitte?
Hier ist mein Code:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(){
printf("Programme qui change de PID toutes les deux secondes \n");
pid_t fils;
while(1){
printf("I'm %d\n",(int)getpid());
sleep(5);
fils = fork();
if(fils < 0){
perror("Fork child \n");
exit(1);
}
else if (fils ==0)
exit(0);
}
return 0;
}
Versuchen 'else if (fils == 0)' auf 'anderes zu ändern, wenn (fils> 0) '. Der Code, der angezeigt wird, verlässt den untergeordneten Prozess und lässt den gleichen/ersten übergeordneten Prozess ausgeführt. Da es sich um denselben Prozess handelt, bleibt sein Pid natürlich gleich. – kaylum
@ Kaylum, es funktioniert! Danke :) –
Minor nit pick: Der kanonische Weg, um eine nicht endende Schleife in C auszudrücken, ist 'for (;;)', da es den konstanten Wert boolean in der 'while (1) 'Bedingung vermeidet (einige Flüche beschweren sich) es). Und es ist kürzer zu tippen! – Jens