begin process at 2012 05 29 10:35:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

Fichier & Disque

 > 

Écriture à la fin d'un fichier avec open


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Écriture à la fin d'un fichier avec open

dimanche 26 novembre 2006 à 21:48:39 | Écriture à la fin d'un fichier avec open

aztcaLISS

Salut,

Comment je peux faire pour écrire à la fin d'un fichier sous Linux.
j'utilise la fonction
fd = open(nomfichier, O_RDWR | O_APPEND);
write(fd, "allo", sizeof("allo"));

Ca ajoute que des retours de chariots dans le fichier.
Je dois vraiment utilisé la fonction fopen car c'est dans le cadre d'un travail scolaire.

Merci

azt
dimanche 26 novembre 2006 à 22:17:42 | Re : Écriture à la fin d'un fichier avec open

DeAtHCrAsH

Pour ouvrir ton fichier utilise plutot fopen(...)
Pour positionner le pointeur en fin de flux cf fseek(...)

Shell
dimanche 26 novembre 2006 à 22:20:24 | Re : Écriture à la fin d'un fichier avec open

aztcaLISS

Je me suis trompé, je voulais dire que je dois vraiment utilisé la fonction open et non fopen.


azt
dimanche 26 novembre 2006 à 22:22:33 | Re : Écriture à la fin d'un fichier avec open

DeAtHCrAsH

La constante pour se mettre en fin de flux et SEEK_END.

Exemple:

int main()
{
    FILE * pFile;

    pFile = fopen("\home\Shell\test.txt", "r+t");

    if(pFile)
    {
        fseek(pFile, 0L, SEEK_END);
        fwrite("coucou", strlen("coucou"), 1, pFile);
        fclose(pFile);
    }

    return 0;
}


Shell
dimanche 26 novembre 2006 à 22:25:54 | Re : Écriture à la fin d'un fichier avec open

DeAtHCrAsH

La fonction open fait partie de quelle bibliothèque ?

Shell
dimanche 26 novembre 2006 à 22:47:54 | Re : Écriture à la fin d'un fichier avec open
dimanche 26 novembre 2006 à 23:52:23 | Re : Écriture à la fin d'un fichier avec open

vecchio56

Administrateur CodeS-SourceS
Je crois qu'a la place de fseek, tu peux utiliser lseek si tu utilises open

_____________________________________
Un éditeur de ressources gratuit pour Windows

lundi 27 novembre 2006 à 13:30:53 | Re : Écriture à la fin d'un fichier avec open

turnerom

// Ton open est bon
fd = open(nomfichier, O_RDWR | O_APPEND);

//ton write laisse enormement a désiré
write(fd, (const char*)"allo", sizeof(char*4))

TuRn3r
lundi 27 novembre 2006 à 13:35:13 | Re : Écriture à la fin d'un fichier avec open

vecchio56

Administrateur CodeS-SourceS
J'aime autant son write
1) ton cast en const char* ne sert à rien
2) ton sizeof est faux, le 4 doit être sorti des parenthèses
3) c'est pas terrible de mettre 4 comme ca

Voila comment je l'écrirais pour ma part
write(fd, "allo", sizeof "allo" - 1);
-1 car sizeof "allo" vaut 5 et pas 4 (après il faut voir s'il veut écrire le 0 terminal ou pas)
_____________________________________
Un éditeur de ressources gratuit pour Windows

lundi 27 novembre 2006 à 13:53:47 | Re : Écriture à la fin d'un fichier avec open

turnerom

J'aime autant son write
1) ton cast en const char* ne sert à rien
--> Dans ce cas la en effet

2) ton sizeof est faux, le 4 doit être sorti des parenthèses
--> c'est pas faux

3) c'est pas terrible de mettre 4 comme ca
--> c'est pas faux non plus, mais si ca marche alors, il pourra ensuite ecrire un truc plus propre


Voila comment je l'écrirais pour ma part
write(fd, "allo", sizeof "allo" - 1);
-1 car sizeof "allo" vaut 5 et pas 4 (après il faut voir s'il veut écrire le 0 terminal ou pas)


ton sizeof est tout aussi faux que le mien car tu as oublié les parenthèses, de plus à ce moment la, tu met

string s("allo");
write(fd,s.c_str(),s.size()+1);


TuRn3r

1 2

Cette discussion est classée dans : fichier, fin, open, allo, criture


Répondre à ce message

Sujets en rapport avec ce message

traitement d'un fichier txt [ par sylvain ] Bonjour,Je doit effectuer un traitement sur un fichier txt.Je reçoit un fichier txt sous cette forme :// début fichierdébut annonce..........@ fin ann pb de (fin de) fichier assez urgent [ par Harmsik ] Salut,j'ai fait un programme du type client/serveur (sans les sockets ... )En fait du côté serveur, je stocke des messages sous forme de structure (le Ecrire a la fin d'un fichier ? [ par manta7 ] Bonjour,j'ai un petit probleme, je voudrais savoir s'il etait possible d'ecrire a la fin d'un fichier.Je m'explique :Dans une premiere fonction je cre Ecriture dans un fichier en C++ : fin de ligne compte double ! [ par mary4 ] Bonjour,j'ai un petit problème lorsque j'écris dans un fichier...Lorsque je veux positionner le curseur à une place précise pour écrire, il se positio fin de ligne [ par Joyeuse_Fougere ] Salut a vous, programmeur!je sui tres embeté g un probleme avec la fin de ligne dans un fichier texte:je dois reperer certaine ligne dans un fichier t Open Inventor [ par kssrol ] Bonjour,Je cherche les sources d'open inventor pour C.Je vous explique mon problème. Je suis étudiant et je dois incorporé dans un modeler existant du PB de gestion de fichier!!!! [ par kobee12 ] J'ai un probleme avec la boucle qui se trouve en dessous ( do ... while(!feof(fichier)) ).quand on arrive a la fin du fichier il fait une erreur. il n effacer un fichier [ par MLine ] Peut-etre que cette question est stupide, mais comment effacer un fichier (sous C++ builder 5)? il est déclaré comme ça :fstream iofile("truc.txt");Il lecture d'un fichier en c [ par GazGaz ] lu allalors voila j'ai un fichier et je voudrait réaliser l'algo suivant avec ce fichier :se mettre au debut du fichiertant que c'est pas la fin de fi Fonction system open() sous linux. [ par bouba ] Bonjour, j'écris un ptit programme qui simule "ls -l | wc -l > baba" et donc compte le "nombre de fichiers" contenu dans le répertoire courant puis éc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales