Forum Programmation.c Trop de fichiers ouverts ...

Posté par  .
Étiquettes : aucune
0
1
déc.
2005
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  (site web personnel) . Évalué à 2.

    tu peux essayer
    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  . Évalué à 3.

      Le "truc dans le genre" c'est ulimit

      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  . Évalué à 1.

        J'ai rajouté dans /etc/security/limits.conf :

        * 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  . Évalué à 3.

          Normalement, ça doit marcher.
          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  . Évalué à 2.

    ...changer d'application
    • [^] # Re: mauvaise application...

      Posté par  (site web personnel) . Évalué à 2.

      un bug report, éventuellement accompagné d'un patch est plus intéressant

      [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.