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

C Discussion :

Ouverture de fichiers sous Windows


Sujet :

C

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes embarqués
    Inscrit en
    Janvier 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 81
    Points : 86
    Points
    86
    Par défaut Ouverture de fichiers sous Windows
    Bonjour
    Sous windows en language C, y'a-t-il un moyen de savoir si un fichier est ouvert par une autre application?
    Clairement une autre application que je ne controle pas ecrit dans un fichier dans lequel je dois accéder en lecture. D'ou ma question.
    Merci de votre aide

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Une réponse algorithmique serait d'ouvrir le fichier en lecture et voir que cela ne te retourne pas une erreur du type accès refusé en consultant la variable errno ?

    Sinon je ne pense pas autrement que tu puisses le savoir.

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 393
    Points : 23 727
    Points
    23 727
    Par défaut
    Citation Envoyé par hegros Voir le message
    Sinon je ne pense pas autrement que tu puisses le savoir.
    En principe, le système d'exploitation garde une trace des fichiers ouverts, donc il y a forcément moyen, sauf si l'O.S. y met de la mauvaise volonté.

    Sous Linux, il y a la commande lsof pour cela, qui se base elle-même sur les fd disponibles dans /proc. Sous Windows, ça existe forcément, mais je ne connais pas les appels correspondants.

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    En principe, le système d'exploitation garde une trace des fichiers ouverts, donc il y a forcément moyen, sauf si l'O.S. y met de la mauvaise volonté.

    Sous Linux, il y a la commande lsof pour cela, qui se base elle-même sur les fd disponibles dans /proc. Sous Windows, ça existe forcément, mais je ne connais pas les appels correspondants.

    Oui je sais que le système d'exploitation garde cela en mémoire (heureusement d'ailleurs) mais je ne connais aucune fonction (en tout cas de mémoire) qui permet de récupérer la table des descripteurs de fichiers ouvert

  5. #5
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Bonjour,
    Dans le principe, si tu connais le processus en question, il te suffis de regarder tous les handles de ce processus et de regarder si l'un pointe vers ton fichier.
    Le soucis c'est que c'est relativement fort pénible à faire.

    Le mieux serait de demandé un handle absolu sur le fichier, si l'OS te l'accorde, l'autre processus ne pourra pas venir écrire pendant que tu lis, si tu ne l'a pas c'est que le processus a déjà un handle dessus ^^

Discussions similaires

  1. date de modification de fichier sous windows
    Par brisbo dans le forum Windows
    Réponses: 2
    Dernier message: 04/05/2006, 23h45
  2. ouverture de fichiers sous asp
    Par lietof dans le forum ASP
    Réponses: 3
    Dernier message: 26/04/2006, 11h27
  3. Probléme d'ouverture de session sous Windows 2000 server
    Par Orameur dans le forum Windows XP
    Réponses: 1
    Dernier message: 25/02/2006, 19h15
  4. gestion de fichier sous windows en posix
    Par fan² dans le forum Réseau
    Réponses: 11
    Dernier message: 07/12/2005, 18h40
  5. Changer les droits d'un fichier sous windows
    Par lnikolanta dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 26/09/2005, 17h03

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