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 :

Supprimer un fichier à partir d'un descripteur


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 117
    Par défaut Supprimer un fichier à partir d'un descripteur
    Bonjour,

    Je voudrais savoir si il est possible de supprimer un fichier à partir d'un descripteur.
    Je voudrais également savoir si il est possible d'obtenir le nom et/ou le chemin d'accès à un fichier, toujours à partir d'un descripteur de fichier.

    Merci d'avance.

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Non et non.
    Cordialement.

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par hebus44 Voir le message
    Je voudrais savoir si il est possible de supprimer un fichier à partir d'un descripteur.
    Non, si tu as un descripteur, c'est que le fichier est ouvert donc tu ne pourras l'effacer.

    Citation Envoyé par hebus44 Voir le message
    Je voudrais également savoir si il est possible d'obtenir le nom et/ou le chemin d'accès à un fichier, toujours à partir d'un descripteur de fichier.
    Je n'en connais pas
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 117
    Par défaut
    Merci. C'est bon j'ai pu résoudre mon problème. Dans mon programme je crée un descripteur sur un fichier. Ensuite je lance un programme via execvp qui doit effectuer des opérations sur ce fichier via le descripteur. Le problème que j'avais était que je ne pouvait pas supprimer ce fichier à la fin des opérations. Mais si on fait un unlink sur le fichier (avec le nom comme paramètre), celui-ci ne sera réellement effacé par le système lorsque il n'y aura aucun descripteur dessus.
    En gros mon problème est résolu, merci à tous.

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Citation Envoyé par hebus44 Voir le message
    Je voudrais savoir si il est possible de supprimer un fichier à partir d'un descripteur. Je voudrais également savoir si il est possible d'obtenir le nom et/ou le chemin d'accès à un fichier, toujours à partir d'un descripteur de fichier. Merci d'avance.
    J'ajoute que ce n'est pas possible en C standard, la gestion des fichiers étant toujours très dépendante du système sur lequel elle a lieu. Sur les assimilés UNIX, par exemple, il peut y avoir plusieurs liens durs sur un même fichier.

    Par contre, toujours sur les assimilés UNIX, tu as la primitive fstat() qui te permet de retrouver les infos d'un fichier en fonction de son descripteur. Ça ne te donne pas directement le nom qui a servi à l'ouvrir (quoi que ça pourrait), mais au moins l'inode.

    D'autre part, sous Linux, le système de fichier /proc tient à jour la liste des fichiers en cours d'utilisation par chaque processus, en dessous de « fd », sous la forme d'un lien symbolique vers chaque fichier.

    Enfin, il existe la commande lsof pour retrouver rapidement toutes ces infos depuis la ligne de commande.

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Par contre, toujours sur les assimilés UNIX, tu as la primitive fstat() qui te permet de retrouver les infos d'un fichier en fonction de son descripteur. Ça ne te donne pas directement le nom qui a servi à l'ouvrir (quoi que ça pourrait), mais au moins l'inode.
    Peut être qu'il ne peut pas à cause des liens soft et hard. Si tu ouvre le fichier /etc/inetd.conf qui est un lien (hard ou soft, peut importe) sur /etc/network/inedt.conf, quel nom doit te retourner la primitive fstat()
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    Peut être qu'il ne peut pas à cause des liens soft et hard. Si tu ouvre le fichier /etc/inetd.conf qui est un lien (hard ou soft, peut importe) sur /etc/network/inedt.conf, quel nom doit te retourner la primitive fstat()
    C'est ce que je dis au-dessus mais, étant donné que fstat() fonctionne avec un descripteur de fichier, il pourrait retourner le chemin qui a été explicitement passé à open(), d'autant plus que l'on sait par /proc que cette information est conservée par le noyau ...

Discussions similaires

  1. [Débutant] Supprimer des fichiers à partir des items sélectionnés d'une listbox
    Par Shennong dans le forum VB.NET
    Réponses: 16
    Dernier message: 12/05/2014, 18h24
  2. [Batch] Supprimer des fichiers à partir d'une liste contenu dans un fichier txt
    Par damsmut dans le forum Scripts/Batch
    Réponses: 10
    Dernier message: 15/11/2012, 10h23
  3. Réponses: 16
    Dernier message: 25/08/2011, 20h17
  4. [DOS] comment supprimer un fichier à partir de Mysql?
    Par adil_vpb dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/06/2007, 14h20
  5. Réponses: 3
    Dernier message: 06/09/2005, 10h27

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