Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
897 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Problème avec la fonction setrlimit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec la fonction setrlimit

n°2064907
ikseg
Qui vivra verra!
Posté le 20-03-2011 à 18:08:01  profilanswer
 

Bonjour,
Voici mon code :
 
 
int main()
{
while (1) {
  struct rlimit limit;
 
  int temps_ulimit = 0;  
  limit.rlim_cur = 0;
  limit.rlim_max = 0;
   if (setrlimit(RLIMIT_CPU, &limit) != 0) {
    printf("wesh fou" );
    exit(1);
  }else {printf("ca marche" ); }
   
  }
}
 
Comment ca se fait que la boucle tourne à l'infini? J'ai pourtant mis 0 comme délai souple et dur!
Meme quand je mets une/5/10 seconde, ca ne marche pas...

Message cité 1 fois
Message édité par ikseg le 20-03-2011 à 18:24:05
mood
Publicité
Posté le 20-03-2011 à 18:08:01  profilanswer
 

n°2064908
gilou
Modérateur
Modzilla
Posté le 20-03-2011 à 18:24:52  profilanswer
 

C'est  un appel a setrlimit que tu voulais faire? parce que la c'est pas le cas:
Tu demandes la limite avec getrlimit, ca marche, la valeur de retour est 0,  
comme 0 != 0 est faux, on sort pas, mais on boucle a l'infini avec printf("ca marche" );
La boucle infinie est donc logique il me semble.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2064911
ikseg
Qui vivra verra!
Posté le 20-03-2011 à 18:40:24  profilanswer
 

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?

n°2064912
mr simon
Posté le 20-03-2011 à 18:41:09  profilanswer
 

ikseg a écrit :

Bonjour,
Comment ca se fait que la boucle tourne à l'infini? J'ai pourtant mis 0 comme délai souple et dur!


 
Je ne sais pas ce que tu veux faire, mais sans appel a setrlimit, tu ne mets aucune limite !
 
getrlimit récupère juste la valeur.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Problème avec la fonction setrlimit

 

Sujets relatifs
problème de liaison d'un objet distantFonction round() en C ansi
Où ce peut etre le problème ?[Linux] Accéder dynamiquement à l'addresse d'une fonction statique
Problème Regexprobleme xampp erreur 404
[perl] Probleme double lecture[resolu] problème d'injection SQL, doctrine orm
Probleme sur href et mailto 
Plus de sujets relatifs à : Problème avec la fonction setrlimit


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR