utilisation de setrlimit - C - Programmation
Marsh Posté le 14-11-2008 à 07:40:32
Tu es sur que cmd[2] contient la valeur de X? Tu as fait un printf() pour voir si tu entrais bien dans ta condition if(!strcmp(......) ?
Sinon je comprends pas pourquoi tu castes limite.rlim_cur pour affecter limite.rlim_max, alors que atoi() renvoit un int. 'Fin je préfère préciser que je suis noob en la matière.
Marsh Posté le 14-11-2008 à 10:31:06
Je suppose que tu executes le code en mode super utilisateur, sinon...
Citation : struct rlim limite; |
Tu as redéfini rlimit en rlim?
Les structures sont identiques?
Parce que sinon, a l'appel de la fonction setrlimit, il n'est pas sur que les parametres soient trouvés la ou ils sont attendus.
A+,
Marsh Posté le 15-11-2008 à 10:21:24
h0taru je recupere bien les bonnes valeurs j'ai verifiée, je met egalement correctement a jour les valeurs de limite
le probleme vient du fait que je ne peux appele setrlimit qu'une fois, la premiere ca va marcher et apres non
bien sur si je ferme et relance mon shell je peux fixer une limite differente et ca va marcher ( normal puisque j'ai relancé mon programme ).
J'ai demandé a 2 profs ils m'ont toujours pas repondu, enfin si ils m'ont dit regarde dans le man la partie bug
Marsh Posté le 15-11-2008 à 16:55:50
Si le code n'es pas executé en mode super user, tu ne peux que diminuer la valeur de rlim_max.
Tu n'aurais pas essaye de diminuer puis réaugmenter cette valeur, dans tes tests, par hasard...
A+,
Marsh Posté le 07-11-2008 à 19:57:06
Bonjour a tous,
dans le cadre d'un tp ( on programme un shell ), on doit fixer un delai souple CPU et un delai dur CPU au dela desquel un processus doit recevoir un signal SIGXCPU puis SIGKILL ( delai dur )
je le fixe avec setrlimit et ca marche
cependant je souhaite pouvoir moddifier ces delais et la non j'y arrive pas
je modifier les valeurs des delais ( elles sont dans un structure rlimit ), elles sont correctement moddifiées puis j'appel a nouveau setrlimit et la badaboom les delai ne sont pas moddifiés je l'ai verifié a l'aide de getrlimit ...
quelqu'un aurait une idée?
je vous met en gros la structure du code :