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 :

creation et ecriture dans un fichier en c sous linux


Sujet :

C

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 81
    Points : 50
    Points
    50
    Par défaut creation et ecriture dans un fichier en c sous linux
    bonjour a tous !!
    je bosse sur un projet qui nécessite l'utilisation des fichiers avec C sous sous linux !!
    j'ai quelque difficulté car je débute avec les fichier et plus précisément l'utilisation des routines système pour la manipulation de fichier
    j'ai écris un code pour m'entrainer mais le résultats n'est pas bon
    je voudrais avoir votre avis la dessus mercii !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void main()
    {
    int id1,id2,fp;
    int tab[8]={2,3,4,5,6,7,8,9}; 
    fp=open("fpr.txt",O_CREAT|O_RDWR);// créer et ouvrir le fichier en read et write
    int e=write(fp,tab,sizeof(tab)); //ecriture de tab dans le fichier
    if (e!=-1)  //vérifier si l’écriture a réussie 
    printf("ok\n");
    else
    printf("fail \n");
    close(fp);
    }

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Iran

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 28
    Points : 40
    Points
    40
    Par défaut
    ça marche bien.
    quele est votre probleme?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 81
    Points : 50
    Points
    50
    Par défaut
    ben la verification aprés ecriture me met tjr fail et g essayé de verifier aprés l'ouverture fp=3 or ça devrai étre 0 non ??

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 81
    Points : 50
    Points
    50
    Par défaut
    moi mon but c'est de remplir le fichier avec des entiers donc donc si je réussi a le faire de cette manière je n'aurai qu'a mettre mes entiers dans tab !!

  5. #5
    Membre éprouvé Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Points : 997
    Points
    997
    Par défaut
    Bonjour.

    Si tu débutes avec les fichiers, tu devrais peut-être utiliser fopen() et les FILE* plutôt que open() et les descripteurs de fichiers.
    Enfin tout dépend de ce dont tu as réellement besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #line 4
    int id1,id2,fp;
    À quoi te servent id1 et id2 ?
    Tu ne les utilises nulle part...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #line 6
    fp=open("fpr.txt",O_CREAT|O_RDWR);// créer et ouvrir le fichier en read et write
    Est-ce vraiment nécessaire d'ouvrir le fichier en lecture et en écriture ?
    Visiblement tu ne fais qu'écrire dedans.
    L'ouverture en écriture (O_WRONLY) suffit.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #line 7
    int e=write(fp,tab,sizeof(tab)); //ecriture de tab dans le fichier
    Juste pour le cas où, je vais insister sur le fait que tu peux utiliser l'opérateur sizeof de cette manière uniquement parce que tab est un tableau alloué statiquement.
    S'il l'avait été dynamiquement, sizeof aurait retourné la taille d'un pointeur, ce qui n'est pas ce que tu attends.


    Citation Envoyé par lucastof Voir le message
    ben la verification aprés ecriture me met tjr fail et g essayé de verifier aprés l'ouverture fp=3 or ça devrai étre 0 non ??
    Non, c'est tout à fait normal.
    Les descripteurs de fichier 0, 1 et 2 sont réservés respectivement pour l'entrée standard (stdin), la sortie standard (stdout) et la sortie d'erreur standard (stderr).
    Le premier entier disponible est donc 3.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/10/2011, 22h25
  2. Creation/Ecriture dans un fichier .CSV
    Par RodolpheHTL dans le forum C#
    Réponses: 2
    Dernier message: 28/10/2011, 01h53
  3. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 18h30
  4. Réponses: 2
    Dernier message: 26/09/2003, 15h51

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