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

Modules Perl Discussion :

FileHandle et droits sur le fichier


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut FileHandle et droits sur le fichier
    Bonjour à tous,

    Je crée des fichiers sur un serveur linux, en utilisant le module FileHandle, comment définir les droits (rwxrwxr-x) à la création du fichier ?

    D'avance merci.

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Je dirais que tu positionnes le umask avant d'appeler FileHandle->new :

    Ou bien en changeant le mode après l'appel à FileHandle->new :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $fh = FileHandle->new("< fichier");
    chmod 0775, $fh;
    ou carrément après avoir fermé le fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $fh = FileHandle->new();
    ...
    $FileHandle->open("fichier", "w");
    $FileHandle->close();
     
    chmod 0775, "fichier");
    Tu as un besoin particulier pour utiliser FileHandle pour créer tes fichiers (au lieu du simple open) ?

  3. #3
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Merci pour ta réponse :

    Tu as un besoin particulier pour utiliser FileHandle pour créer tes fichiers (au lieu du simple open) ?
    Non, est-ce mieux avec un simple open ? Pour créer un fichier inexistant, depuis que j'ai commencé à coder, j'ai toujours utilisé FileHandle, un simple open ne fonctionnait pas, mais ça a peut-être changé ... ou alors, je me trompe ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			umask 0777 ^ 0775;
    			my $fh = FileHandle->new('>'.$root.$rep.'/merge.txt');
    Useless use of bitwise xor (^) in void context at diXa_merge_files_v5.pl line 277.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    			# fichier de sortie
    			my $fh = FileHandle->new('>'.$root.$rep.'/merge.txt');
    			# droits sur le fichier rwxrwxr-x
    			chmod 0775, $fh;
    Use of uninitialized value $fh in chmod at diXa_merge_files_v5.pl line 278.

    PS : Je code sur un PC avec windows

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Bah... je ne vois pas bien l'intérêt du module ... surtout si ton script n'est pas multi-plateforme. Mais je me trompe peut-être.

    Pour la première erreur, c'est peut-être du à la précédence des opérateurs. Essaye :

    ou plus simplement :
    (la première écriture est plus "explicite").

    Pour l'erreur du chmod, il y a de fortes chance que $fh retourné par FileHandle->new soit undef, donc que cette méthode ait échouée.

  5. #5
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Merci beaucoup, cela fonctionne.

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

Discussions similaires

  1. [c#] gestion des droits sur les fichiers
    Par mrrenard dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/11/2006, 11h50
  2. Réponses: 10
    Dernier message: 18/05/2006, 16h18
  3. Problème de droits sur un fichier
    Par BenoitDenis dans le forum Langage
    Réponses: 8
    Dernier message: 14/02/2006, 16h44
  4. Droit sur certains fichier
    Par flo456 dans le forum ASP
    Réponses: 23
    Dernier message: 24/11/2005, 07h35
  5. [Système] Droits sur un fichier
    Par maxvador dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 16/07/2004, 17h06

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