Excuse moi. Avec le setrlimit ça marche en effet.
En fait j'ajoute des précisions à mon problème :
Ce code s'arrête bien directement :
int main()
{
struct rlimit limit;
int temps_ulimit = 0;
limit.rlim_cur = temps_ulimit;
limit.rlim_max = temps_ulimit;
if (setrlimit(RLIMIT_CPU, &limit) != 0) {
printf("wesh fou" );
exit(1);
}
while (1) {
/*pid_t pid_fils;
switch ( pid_fils = fork() ) {
case 0:
printf("fils" );
break;
default:
waitpid(pid_fils, NULL, 0);
break;
}*/
}
}
Par contre, si j'enlève les commentaires (avec le fork() et tout), ça boucle à l'infini :
int main()
{
struct rlimit limit;
int temps_ulimit = 0;
limit.rlim_cur = temps_ulimit;
limit.rlim_max = temps_ulimit;
if (setrlimit(RLIMIT_CPU, &limit) != 0) {
printf("wesh fou" );
exit(1);
}
while (1) {
pid_t pid_fils;
switch ( pid_fils = fork() ) {
case 0:
printf("fils" );
break;
default:
waitpid(pid_fils, NULL, 0);
break;
}
}
}
Comment ça se fait?