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 :

probleme de permission


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 26
    Points : 22
    Points
    22
    Par défaut probleme de permission
    bonjour j'essaye de renommer un fichier avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rename ("fichier","nouveaunom");
    mais avec la RC de seven j'obtiens errno 13 donc un problème de permission. Je ne vois pas d'où ça vient puisque j'ai tous les doits sur le fichiers, je l'ai créé.

    Le programme est en C mais peut-être que je devrais poster dans le forum windows...

    Si vous avez des idées merci.

    remarque : sous ubuntu aucun problème.

    edit :
    Je pense que le problème vient du fait que le fichier est ouvert dans main() et que pendant son execution, main fait appel à une autre fonction, qui entre autre renomme mon fichier. (je le remplace par un autre du même nom)

    Je comprend que cela puisse ne pas fonctionner, mais alors pourquoi aucun pblème sous UNIX ??

  2. #2
    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 : 61
    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
    Points : 50 367
    Points
    50 367
    Par défaut
    Quelques idées comme cela :

    • Es tu sûr que le fichier "nouveaunom" n'existe pas avant de faire ton rename() ?
    • Tu as les droits sur les fichiers mais as tu les droits nécessaires sur le répertoire qui contient ces fichiers ?
    • Le fichier "fichier" n'est pas en read only ?
    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
    .

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    oui le fichier existe, le problème vient sans doute de la double ouverture.

    Est-ce que cela est possible?
    Est-il possible de contourner le problème sans avoir à fermer le fichier puis de le réouvrir ?
    Merci

  4. #4
    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 : 61
    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
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Discovery Voir le message
    oui le fichier existe
    Quel fichier existe ?

    Pour pouvoir renommer, il faut que le nouveau nom n'existe pas

    Citation Envoyé par Discovery Voir le message
    le problème vient sans doute de la double ouverture.
    Quelle double ouverture ?

    Citation Envoyé par Discovery Voir le message
    Est-il possible de contourner le problème sans avoir à fermer le fichier puis de le réouvrir ?
    Si je comprends bien ce que tu dis, tu es entrain d'essayer de renommer un fichier déjà ouvert par ton application, cela risque de ne pas marcher
    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
    .

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    en fait je veux modifier un fichier, pour cela, j'en crée un nouveau ou je rentre l'ancien fichier avec les modifications, puis je supprime l'ancien (qui n'existe donc plus) et je renomme le nouveau commen l'ancien.

    Cela marche très bien avec ubuntu.
    Mais pas sous windows.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    int modif();
     
    int main(){
    FILE * fp=fopen("lefichier","r");
    /*utilisation*/
    if (modif() != EXIT_SUCCESS){
        printf("pbleme\n");
        return EXIT_FAILURE;
    }
    /*suite de l'utilisation*/
    fclose(fp);
    return EXIT_SUCESS;
     
    }
     
    int modif(){
    FILE *origine=fopen("lefichier","r"), *but=fopen("temp","w");
    //modifications en lisant "lefichier" sans pblème
    fclose(origine);
    fclose("but");
    remove("lefichier");
    rename("temp","lefichier");
    return EXIT_SUCCESS;
    }
    le problème apparait à partir de la suppression pour laquelle je n'ai pas les droits.

  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 : 61
    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
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Discovery Voir le message
    le problème apparait à partir de la suppression pour laquelle je n'ai pas les droits.
    • Tu as les droit sur les fichier mais as tu les droits nécessaires sur le répertoire qui contient ce fichier (droite d'effacement entre autres) ?
    • Le fichier n'est pas en read only ?
    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
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par Discovery Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    int modif();
     
    int main(){
    FILE * fp=fopen("lefichier","r");
    /*utilisation*/
    if (modif() != EXIT_SUCCESS){
        printf("pbleme\n");
        return EXIT_FAILURE;
    }
    /*suite de l'utilisation*/
    fclose(fp);
    return EXIT_SUCESS;
     
    }
     
    int modif(){
    FILE *origine=fopen("lefichier","r"), *but=fopen("temp","w");
    //modifications en lisant "lefichier" sans pblème
    fclose(origine);
    fclose("but");
    remove("lefichier");
    rename("temp","lefichier");
    return EXIT_SUCCESS;
    }
    le problème apparait à partir de la suppression pour laquelle je n'ai pas les droits.
    Attention, tu essaies de supprimer un fichier (lefichier) qui est ouvert (dans le main), ce n'est pas étonnant que tu rencontres des problèmes, commences par fermer le fichier avant de le supprimer ou d'utiliser son nom pour renommer un autre fichier.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Ok merci

    Le problème est bien le fait que le fichier soit déjà ouvert.
    M'a question était :
    Pourquoi sous ubuntu le programme fonctionne ainsi mais pas sous windows ?

    C'est pas grave je vais donc fermer le fichier puisqu'on ne peut pas contourner le problème visiblement.

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

Discussions similaires

  1. AjaxControl ToolKit probleme de permission
    Par epiouf dans le forum ASP.NET
    Réponses: 3
    Dernier message: 01/10/2008, 14h46
  2. Probleme de permissions
    Par spynux dans le forum SharePoint
    Réponses: 2
    Dernier message: 19/04/2008, 09h57
  3. Réponses: 1
    Dernier message: 20/06/2006, 03h36
  4. Réponses: 19
    Dernier message: 15/05/2006, 15h02
  5. Problème de permission au lancement d'ut2004demo !
    Par Ancien_Legolas dans le forum Applications et environnements graphiques
    Réponses: 21
    Dernier message: 04/06/2004, 20h58

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