begin process at 2012 05 30 00:55:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Ourir Fichier Windows/Linux


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

Ourir Fichier Windows/Linux

lundi 24 novembre 2003 à 22:11:53 | Ourir Fichier Windows/Linux

jockos

Bonjour,

Je voudrais connaitre la meilleur méthode pour ouvrir des fichiers en C++ afin d'être compatible Windows/Linux.
Jusque là, j'utilisais les API Windows ReadFile et WriteFile, mais je veux porter mon appli sous Linux et je voudrais connaitre une méthode d'accès aux fichiers universelles et performantes (car j'ouvre de gros fichiers de plusieurs Mo) qui marche aussi bien sous Linux que sous Windows.

Merci de votre aide,

Jock
lundi 24 novembre 2003 à 22:21:36 | Re : Ourir Fichier Windows/Linux

bouba

Salut, la seul chose qui puisse être portable est
- fopen
- fread
- fwrite
Ce sont les fonctions classiques du C, si tu ne las connais pas, vas voir le mannuel, a la section 3.
Alé, bonne chance!!
Bouba
mardi 25 novembre 2003 à 15:41:21 | Re : Ourir Fichier Windows/Linux

damdam4972

Tu peut aussi utiliser des "flux", c'est du C++
contrairement aux traditionnels fopen, fread et companie,
l'avantage c'est que tu peut utiliser avec les flux une
syntaxe comparable à ce que tu fait avec cout par exemple.
et en plus c'est portable.

Pour etre plus clair :
les flux de fichier : #include <fstream> (pour file stream)
les flux console : #include <iostream>

avec un using namespace std;

pour écrire un texte dans la console, tu taperait par exemple
cout << "le texte a écrire";

ben pour écrire ce texte dans le fichier toto.txt, tu taperait
fichier ofstream( "toto" ); // ofstream pour out file stream
fichier << "le texte a écrire";
fichier.close(); // permet de fermer

si tu veux faire de l'écriture/lecture de données en binaire
fichier.write( pointeur sur les données, taille );
où fichier est un ofstream
fichier.read( pointeur sur les données, taille );
où fichier est un ifstream

pour plus de doc sur les flux, tu cherche fstream dans
n'importe quel moteur de recherche et tu trouvera ton bonheur.
dimanche 14 août 2005 à 13:40:20 | Re : Ourir Fichier Windows/Linux

misterzinzin

je cherche a connaitre la taille d'un fichier...
en c j'avais fait une petite fonction toute bete:
int getTaille(int desc){
    int pos= lseek(desc, 0, SEEK_CUR);//sauve la position dans le fichier
    int taille= lseek(desc, 0, SEEK_END);
     lseek(desc, pos, SEEK_SET);//restore la position dans le fichier
     return taille;
}

mais en c++ avec un fstream... je ne sais pas quelle fonction mebre appeler...

moi, le seul, l'unique, ZinZin
dimanche 14 août 2005 à 14:15:22 | Re : Ourir Fichier Windows/Linux

misterzinzin

c'est bon j'ai trouve... le meme principe que ma fonction en c a la sauce c++:

int patch::getTaille(fstream& fich)
{
    if (!fich.is_open()) throw errPatch("fichier non ouvert, impossible de déterminer sa taille!");
    streampos pos=fich.tellg();
    fich.seekp( 0, ios::end );
    streampos taille=fich.tellg();
    fich.seekp( pos, ios::beg );
    return taille;
};

rem: il faut appeller la fonction tellg() membre de fstream (ou plus haut dans l'heritage)
qui renvoit un streampos (qui est un entier ou qui peut etre convertit en entier)
rem++: ma fonction est dans utiliseé dans une classe patch... ce qui explique les patch::
la ligne if (!fich.is_open()) throw errPatch("fichier non ouvert, impossible de déterminer sa taille!"); teste si le fichier est ouvert et lance une exception si ce n'est pas le cas... si vous voulez réutiliser cette fonction, il vous faudra changer cette ligne... (j'imagine que vous n'avez pas cette classe... vu que je l'ai fait moi meme lol). vous pouvez tout simplement mettre if (!fich.is_open()) return -1; et le tour est joue...

moi, le seul, l'unique, ZinZin


Cette discussion est classée dans : fichier, windows, fichiers, linux, ourir


Répondre à ce message

Sujets en rapport avec ce message

Recompilation uniquement d'un seul fichier [ par svince ] Bonjour, J'ai un petit souci en C++. J'ai un projet codé en C++ composé des fichiers source (.c), mais aussi des fichiers .o et le MakeFile. Le probl dev graphique simple sous linux et windows [ par fgh39 ] Bonjour Je recherche un soft de développement graphique multiplateforme et assez simple basé sur du C (win, tux) si possible gratuit ou a prix modéré Lecture de fichiers verrouillés [ par norton ] Bonjour / Bonsoir à tous. Pouvez-vous me dire si il est possible sous Windows de lire un fichier en "temps réel" verrouillé par le système ? Je m'e [BAR]Programation sous linux et windows, C ou C++ ??? [ par Ce.plusplus ] Bonsoir, Cela faisait des années que je voulais me mettre au C/C++ cette semaine, je me suis enfin motivé :) Seulement, je suis confronté à un probl compilation avec gcc sous fedora [ par favba ] Bonjour tt le monde.. encore une fois je reviens vers vous pour vous poser mon problème en esperant avoir un coup de main, une reponse.. Voila je tra extraire ligne de fichiers textes [ par addict75 ] Bonjour, J'ai répertorié tous les logiciels des pc de mon parc à l'aide d'un script qui génère un fichier txt par pc, ce fichier porte le nom du pc, Windows 7 et le CopyFile en C problemme! [ par malefitrix ] Bonjour a tous,Voila mon problemme est qu'avec CopyFile("LeFichier","L'amplacement"); bien je ne peux pas deplacer mes fichier dans le directorie c:\P les headers ou les fichier .h [ par le1scorpion1noir ] salut a tous une petite question apropos des headers ou les fichiers .h est ce que je dois les inclure dans les fichiers .c ou le fichier main.c ??? Resource boite de transfert de fichier sous Windows 7 [ par MikeM ] Bonjour à tous, J'utilise dans mon code (C++/MFC) sous Windows XP la ressource de la boite de transfert de fichier (1020) inclus dans shell32.dll To Lecture de ligne dans un fichier texte sous windows et unix [ par moumouteb ] Bonjour, Je développe un code qui doit tourner sous Windows et UNIX. J'utilise la fonction getline() pour lire un fichier texte. Et bien sûr suivant


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 : 1,217 sec (3)

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