J'ai donc créé une bombe "fork" par exemple. Cependant quand je l'exécute sur mon ordinateur il tue tout sur mon ordinateur, va à l'écran noir puis se restaure.Comportement C indéterministe? "Fork fork"
Sur mes amis ordinateur lors de l'exécution du même code, en fait une ela ne fork bomb mais jamais fait à la boucle de tuer.
Une raison quelconque?
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
int main(){
int pc = 0;
int* pids = calloc(1025,sizeof(int));
L1:
while(1){
int pid = fork();
if(pid != 0)
{
pc++;
pids[pc] = pid;
}
if(pc == 1024)
{
goto L2;
break;
}
}
L2:
while(1){
if(pids[pc] != 0) {
kill(pids[pc],SIGKILL);
}
if(pc == 0)
{
goto L1;
break;
}
pc--;
}
free(pids);
}
Notez que ce code est juste pour les funsies.
Mise à jour:
en mettant pC++. en dehors de l'instruction if a provoqué une panique du noyau. Quelqu'un pourrait-il m'expliquer pourquoi?
En théorie, ce code ne fonctionne même pas.
Est-ce que 'ulimit -u' indique les mêmes valeurs? – DaBler
mon ulimit est en fait assez petit donc cela pourrait être le problème? – CabDude
@DaBler savez-vous comment changer l'ulimit -u dans Mac OS Sierra? Je n'arrive pas à trouver quoi que ce soit sur la façon de le faire. – CabDude