IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

fcntl, LOCK_EX et Bad file descriptor : Une explication ?


Sujet :

Bibliothèques tierces Python

  1. #1
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut fcntl, LOCK_EX et Bad file descriptor : Une explication ?
    Bonjour,

    Soit le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import fcntl
     
    f = open('monprog.py')
    #fcntl.lockf(f.fileno(), fcntl.LOCK_SH)
    #fcntl.flock(f.fileno(), fcntl.LOCK_EX)
    fcntl.lockf(f.fileno(), fcntl.LOCK_EX)
    print (f.name, 'is locked')
    fcntl.lockf(f.fileno(), fcntl.LOCK_UN)
    print (f.name, 'is unlocked')
    f.close()
    Qui pourrait simplement m'expliquer pourquoi LOCK_EX provoque une erreur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "fnlock.py", line 5, in <module>
        fcntl.lockf(f.fileno(), fcntl.LOCK_EX)
    IOError: [Errno 9] Bad file descriptor
    J'ai bien vu quelques explications sur le web mais je n'arrive pas à cerner le problème.

    Merci d'avance
    Merci d'utiliser le forum pour les questions techniques.

  2. #2
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    C'est bon, j'ai compris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import fcntl
     
    f = open('monprog.py', 'r+')
    #fcntl.lockf(f.fileno(), fcntl.LOCK_SH)
    #fcntl.flock(f.fileno(), fcntl.LOCK_EX)
    fcntl.lockf(f.fileno(), fcntl.LOCK_EX)
    print (f.name, 'is locked')
    fcntl.lockf(f.fileno(), fcntl.LOCK_UN)
    print (f.name, 'is unlocked')
    f.close()
    Sorry pour le dérangement
    Merci d'utiliser le forum pour les questions techniques.

  3. #3
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    C'est donc le 'r+' qui manquait à l'appel...

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Effectivement, cela viens du mode d'ouverture.
    J'ai l'impression que cela viens de la façon dont le fichier est ouvert par la plateforme avec le built-in open.
    Si quelqu'un a une doc sur cela je suis preneur.
    Merci d'utiliser le forum pour les questions techniques.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bad File descriptor avec fcntl
    Par guigui31 dans le forum Débuter
    Réponses: 2
    Dernier message: 21/04/2008, 20h11
  2. Réponses: 0
    Dernier message: 18/11/2007, 20h53
  3. Erreur: bad file descriptor
    Par Bruno51 dans le forum Langage
    Réponses: 10
    Dernier message: 06/09/2007, 16h44
  4. Bad file descriptor avec un read()
    Par je®ome dans le forum C
    Réponses: 2
    Dernier message: 04/04/2006, 19h30
  5. Etrange "Bad file descriptor"
    Par amauryxiv dans le forum Langage
    Réponses: 23
    Dernier message: 01/02/2006, 03h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo