Bonjour,
J'ai une application qui tourne sous Linux (Mandrake) et qui ouvre en ecriture plus de 1000 fichiers. A l'execution, j'ai une erreur errno 24, qui survient apparemment lorsque trop de fichiers sont ouverts.
Peut-on modifier en C, par l'application le nombre de fichiers que le systeme peut ouvrir simultanement ?
Sinon comment configurer le systeme pour modifier ce parametrage ?
En faisant sysctl -a sous linux, j'ai pourtant fs.file-max = 32767 !!
Merci
# man limit
Posté par Antoine Reilles (site web personnel) . Évalué à 2.
unlimit descriptors
ou un truc dans le genre, pour supprimer la limite sur le nombre des descripteurs de fichiers maximum
[^] # Re: man limit
Posté par netsurfeur . Évalué à 3.
ulimit -n pour avoir la limite du nombre max de fichiers ouverts.
"man bash" et rechercher la description de la commande ulimit pour plus de détails.
Si les limites par défaut ne sont pas suffisantes, il faut modifier le fichier /etc/security/limits.conf
[^] # Re: man limit
Posté par Robby . Évalué à 1.
* soft nofile 4096
* hard nofile 4096
--> Tjrs le pb
En faisant en root : ulimit -n 4096
--> Le prog tourne
Quand je ne suis pas root, je ne peux pas faire ulimit -n (cannot modify limit: Opération non permise). Une idée pour modifier ces droits sur ulimit pour un simple utilisateur ?
[^] # Re: man limit
Posté par netsurfeur . Évalué à 3.
Par contre, les limites ne sont prises en compte qu'à la connexion.
T'es tu déconnecté et reconnecté après avoir modifié /etc/security/limits.conf ?
# mauvaise application...
Posté par Gniarf . Évalué à 2.
[^] # Re: mauvaise application...
Posté par Antoine Reilles (site web personnel) . Évalué à 2.
[mavie]
cplay (un petit outil genial) utilisait jusqu'a il n'y a pas longtemps 109 descripteurs de fichiers.
Évidemment,
$ limit descriptors
descriptors 64
Une fois le problème identifié, un patch de quelques lignes envoyé à l'auteur, et hop, le problème est fixé
[/mavie]
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.