bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est
le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est
le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est
le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est
le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est
le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est
le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d anciens
compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est le but de
l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream par
des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d anciens
compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est le but de
l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream par
des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d anciens
compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est le but de
l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream par
des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est
le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est
le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui est
le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases sur
les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui
est le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases
sur les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
Pour garder la fonctionnalite, avec un impact minimum sur le code,
je remplacerais le fstream par un flux maison qui encapsule un FILE*,
en partant de ce qu'on trouve dans la FAQ section 27.3
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree_sortie
Au final, ca devrait donner quelque chose comme ca:
void traitementFlux( std::istream& in );
FILE* inFile = fopen("foo.txt", "r");
int inDescr = fileno( cfile );
lockf( inDescr, ... );
iFILEstream input( inFile );
traitementFlux( input );
unlockf( inDescr, ... );
fclose( inFile );
le tout sans traitement d'erreurs, bien entendu. On devrait aussi
pouvoir integrer la gestion du lock dans une classe FILEstream plus
elaboree, ce qui permettrait le unlock dans le destructeur, etc.
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui
est le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases
sur les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
Pour garder la fonctionnalite, avec un impact minimum sur le code,
je remplacerais le fstream par un flux maison qui encapsule un FILE*,
en partant de ce qu'on trouve dans la FAQ section 27.3
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree_sortie
Au final, ca devrait donner quelque chose comme ca:
void traitementFlux( std::istream& in );
FILE* inFile = fopen("foo.txt", "r");
int inDescr = fileno( cfile );
lockf( inDescr, ... );
iFILEstream input( inFile );
traitementFlux( input );
unlockf( inDescr, ... );
fclose( inFile );
le tout sans traitement d'erreurs, bien entendu. On devrait aussi
pouvoir integrer la gestion du lock dans une classe FILEstream plus
elaboree, ce qui permettrait le unlock dans le destructeur, etc.
bonjour,
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui
est le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases
sur les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
Pour garder la fonctionnalite, avec un impact minimum sur le code,
je remplacerais le fstream par un flux maison qui encapsule un FILE*,
en partant de ce qu'on trouve dans la FAQ section 27.3
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree_sortie
Au final, ca devrait donner quelque chose comme ca:
void traitementFlux( std::istream& in );
FILE* inFile = fopen("foo.txt", "r");
int inDescr = fileno( cfile );
lockf( inDescr, ... );
iFILEstream input( inFile );
traitementFlux( input );
unlockf( inDescr, ... );
fclose( inFile );
le tout sans traitement d'erreurs, bien entendu. On devrait aussi
pouvoir integrer la gestion du lock dans une classe FILEstream plus
elaboree, ce qui permettrait le unlock dans le destructeur, etc.
g++ (3.4) propose une extension qui permet de faire cela; cela s'appelle
stdio_filebuf.
Le code peut être repris pour l'incorporer au projet.
Michael
g++ (3.4) propose une extension qui permet de faire cela; cela s'appelle
stdio_filebuf.
Le code peut être repris pour l'incorporer au projet.
Michael
g++ (3.4) propose une extension qui permet de faire cela; cela s'appelle
stdio_filebuf.
Le code peut être repris pour l'incorporer au projet.
Michael
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui
est le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases
sur les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
Pour garder la fonctionnalite, avec un impact minimum sur le code,
je remplacerais le fstream par un flux maison qui encapsule un FILE*,
en partant de ce qu'on trouve dans la FAQ section 27.3
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree _sortie
Au final, ca devrait donner quelque chose comme ca:
void traitementFlux( std::istream& in );
FILE* inFile = fopen("foo.txt", "r");
int inDescr = fileno( cfile );
lockf( inDescr, ... );
iFILEstream input( inFile );
traitementFlux( input );
unlockf( inDescr, ... );
fclose( inFile );
le tout sans traitement d'erreurs, bien entendu. On devrait aussi
pouvoir integrer la gestion du lock dans une classe FILEstream plus
elaboree, ce qui permettrait le unlock dans le destructeur, etc.
g++ (3.4) propose une extension qui permet de faire cela; cela s'appelle
stdio_filebuf.
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui
est le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases
sur les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
Pour garder la fonctionnalite, avec un impact minimum sur le code,
je remplacerais le fstream par un flux maison qui encapsule un FILE*,
en partant de ce qu'on trouve dans la FAQ section 27.3
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree _sortie
Au final, ca devrait donner quelque chose comme ca:
void traitementFlux( std::istream& in );
FILE* inFile = fopen("foo.txt", "r");
int inDescr = fileno( cfile );
lockf( inDescr, ... );
iFILEstream input( inFile );
traitementFlux( input );
unlockf( inDescr, ... );
fclose( inFile );
le tout sans traitement d'erreurs, bien entendu. On devrait aussi
pouvoir integrer la gestion du lock dans une classe FILEstream plus
elaboree, ce qui permettrait le unlock dans le destructeur, etc.
g++ (3.4) propose une extension qui permet de faire cela; cela s'appelle
stdio_filebuf.
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui
est le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases
sur les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
Pour garder la fonctionnalite, avec un impact minimum sur le code,
je remplacerais le fstream par un flux maison qui encapsule un FILE*,
en partant de ce qu'on trouve dans la FAQ section 27.3
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree _sortie
Au final, ca devrait donner quelque chose comme ca:
void traitementFlux( std::istream& in );
FILE* inFile = fopen("foo.txt", "r");
int inDescr = fileno( cfile );
lockf( inDescr, ... );
iFILEstream input( inFile );
traitementFlux( input );
unlockf( inDescr, ... );
fclose( inFile );
le tout sans traitement d'erreurs, bien entendu. On devrait aussi
pouvoir integrer la gestion du lock dans une classe FILEstream plus
elaboree, ce qui permettrait le unlock dans le destructeur, etc.
g++ (3.4) propose une extension qui permet de faire cela; cela s'appelle
stdio_filebuf.
Michael DOUBEZ wrote:j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui
est le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases
sur les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
Pour garder la fonctionnalite, avec un impact minimum sur le code,
je remplacerais le fstream par un flux maison qui encapsule un FILE*,
en partant de ce qu'on trouve dans la FAQ section 27.3
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree_sortie
Au final, ca devrait donner quelque chose comme ca:
void traitementFlux( std::istream& in );
FILE* inFile = fopen("foo.txt", "r");
int inDescr = fileno( cfile );
lockf( inDescr, ... );
iFILEstream input( inFile );
traitementFlux( input );
unlockf( inDescr, ... );
fclose( inFile );
le tout sans traitement d'erreurs, bien entendu. On devrait aussi
pouvoir integrer la gestion du lock dans une classe FILEstream plus
elaboree, ce qui permettrait le unlock dans le destructeur, etc.
g++ (3.4) propose une extension qui permet de faire cela; cela s'appelle
stdio_filebuf.
Mais pourquoi cette manie d'utiliser un FILE*. L'extension de
g++, c'est très utile quand on veut travailler avec les
iostream, mais qu'on a du code existant qui utilise des FILE*.
En revanche, il n'y a pas plus de manière « standard »
d'obtenir un file descripteur d'un FILE* que d'un std::filebuf.
La fonction fileno est Posix, et se mappe naturellement (et
traditionnellement) à filebuf::fd() en C++ -- une
implémentation assez irresponsable de ne pas offrir
filebuf::fd() sous Posix pourrait très bien aussi ne pas offrir
fileno().
Personnellement, étant donné que de telles implémentations
existent, la meilleur solution est bien d'écrire ton propre
fdstreambuf ; du coup, ça permettre l'utilisation des iostream
pour des pipe et des sockets aussi. (Mais c'est un peu dommage
d'en être arrivé là).
Michael DOUBEZ wrote:
j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui
est le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases
sur les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
Pour garder la fonctionnalite, avec un impact minimum sur le code,
je remplacerais le fstream par un flux maison qui encapsule un FILE*,
en partant de ce qu'on trouve dans la FAQ section 27.3
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree_sortie
Au final, ca devrait donner quelque chose comme ca:
void traitementFlux( std::istream& in );
FILE* inFile = fopen("foo.txt", "r");
int inDescr = fileno( cfile );
lockf( inDescr, ... );
iFILEstream input( inFile );
traitementFlux( input );
unlockf( inDescr, ... );
fclose( inFile );
le tout sans traitement d'erreurs, bien entendu. On devrait aussi
pouvoir integrer la gestion du lock dans une classe FILEstream plus
elaboree, ce qui permettrait le unlock dans le destructeur, etc.
g++ (3.4) propose une extension qui permet de faire cela; cela s'appelle
stdio_filebuf.
Mais pourquoi cette manie d'utiliser un FILE*. L'extension de
g++, c'est très utile quand on veut travailler avec les
iostream, mais qu'on a du code existant qui utilise des FILE*.
En revanche, il n'y a pas plus de manière « standard »
d'obtenir un file descripteur d'un FILE* que d'un std::filebuf.
La fonction fileno est Posix, et se mappe naturellement (et
traditionnellement) à filebuf::fd() en C++ -- une
implémentation assez irresponsable de ne pas offrir
filebuf::fd() sous Posix pourrait très bien aussi ne pas offrir
fileno().
Personnellement, étant donné que de telles implémentations
existent, la meilleur solution est bien d'écrire ton propre
fdstreambuf ; du coup, ça permettre l'utilisation des iostream
pour des pipe et des sockets aussi. (Mais c'est un peu dommage
d'en être arrivé là).
Michael DOUBEZ wrote:j'ai un vieux code qui contient un fstream file suivi d'un tres joli
file.rdbuf()->fd() permettant de recuperer le file descriptor sur d
anciens compilo. Le tout est suivi d'un lockf(descripteur, ...) qui
est le but de l' operation :)
probleme, cela n est faisable que parceque les fstream etaient bases
sur les FILE, ce qui est un peu hors norme...
quelle est la meilleur solution de remplacement ?
la plus evidente et la moins c++ serait amha de rfemplacer les fstream
par des FILE* fichier et hop j'ai mon file descripteur
ou de trouver un bon equivalent de lockf
que me conseilleriez vous?
Pour garder la fonctionnalite, avec un impact minimum sur le code,
je remplacerais le fstream par un flux maison qui encapsule un FILE*,
en partant de ce qu'on trouve dans la FAQ section 27.3
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree_sortie
Au final, ca devrait donner quelque chose comme ca:
void traitementFlux( std::istream& in );
FILE* inFile = fopen("foo.txt", "r");
int inDescr = fileno( cfile );
lockf( inDescr, ... );
iFILEstream input( inFile );
traitementFlux( input );
unlockf( inDescr, ... );
fclose( inFile );
le tout sans traitement d'erreurs, bien entendu. On devrait aussi
pouvoir integrer la gestion du lock dans une classe FILEstream plus
elaboree, ce qui permettrait le unlock dans le destructeur, etc.
g++ (3.4) propose une extension qui permet de faire cela; cela s'appelle
stdio_filebuf.
Mais pourquoi cette manie d'utiliser un FILE*. L'extension de
g++, c'est très utile quand on veut travailler avec les
iostream, mais qu'on a du code existant qui utilise des FILE*.
En revanche, il n'y a pas plus de manière « standard »
d'obtenir un file descripteur d'un FILE* que d'un std::filebuf.
La fonction fileno est Posix, et se mappe naturellement (et
traditionnellement) à filebuf::fd() en C++ -- une
implémentation assez irresponsable de ne pas offrir
filebuf::fd() sous Posix pourrait très bien aussi ne pas offrir
fileno().
Personnellement, étant donné que de telles implémentations
existent, la meilleur solution est bien d'écrire ton propre
fdstreambuf ; du coup, ça permettre l'utilisation des iostream
pour des pipe et des sockets aussi. (Mais c'est un peu dommage
d'en être arrivé là).
Mais pourquoi cette manie d'utiliser un FILE*.
En revanche, il n'y a pas plus de manière « standard »
d'obtenir un file descripteur d'un FILE* que d'un std::filebuf.
Personnellement, étant donné que de telles implémentations
existent, la meilleur solution est bien d'écrire ton propre
fdstreambuf ; du coup, ça permettre l'utilisation des iostream
pour des pipe et des sockets aussi. (Mais c'est un peu dommage
d'en être arrivé là).
Mais pourquoi cette manie d'utiliser un FILE*.
En revanche, il n'y a pas plus de manière « standard »
d'obtenir un file descripteur d'un FILE* que d'un std::filebuf.
Personnellement, étant donné que de telles implémentations
existent, la meilleur solution est bien d'écrire ton propre
fdstreambuf ; du coup, ça permettre l'utilisation des iostream
pour des pipe et des sockets aussi. (Mais c'est un peu dommage
d'en être arrivé là).
Mais pourquoi cette manie d'utiliser un FILE*.
En revanche, il n'y a pas plus de manière « standard »
d'obtenir un file descripteur d'un FILE* que d'un std::filebuf.
Personnellement, étant donné que de telles implémentations
existent, la meilleur solution est bien d'écrire ton propre
fdstreambuf ; du coup, ça permettre l'utilisation des iostream
pour des pipe et des sockets aussi. (Mais c'est un peu dommage
d'en être arrivé là).
Mais pourquoi cette manie d'utiliser un FILE*.
oh personnellement je m'adapte :-)
je n'ai aucun préjugé simplement je doit adapter un vieux code a linu x,
en minimisant les effets de bord, et sans perdre de tempsEn revanche, il n'y a pas plus de manière « standard »
d'obtenir un file descripteur d'un FILE* que d'un std::filebuf.
le open me donne ce qu'il me faut ;)
Personnellement, étant donné que de telles implémentations
existent, la meilleur solution est bien d'écrire ton propre
fdstreambuf ; du coup, ça permettre l'utilisation des iostream
pour des pipe et des sockets aussi. (Mais c'est un peu dommage
d'en être arrivé là).
je suis entierement d'accord avec vous, mais des fois il faut s'adapter
aux imperatifs ;-)
de plus, n'est il pas parfois preferable d'aller au plus rapide (deux
lignes seulement de changees et 5mn de passees) qu'au plus beau quand le
temps manque, ou que le code est tres vieux ?
il est certain que lorsque j'aurai plus de temps, il y a pas mal de
choses que je compte changer mais en attendant, tout doit avancer parfois :)
Mais pourquoi cette manie d'utiliser un FILE*.
oh personnellement je m'adapte :-)
je n'ai aucun préjugé simplement je doit adapter un vieux code a linu x,
en minimisant les effets de bord, et sans perdre de temps
En revanche, il n'y a pas plus de manière « standard »
d'obtenir un file descripteur d'un FILE* que d'un std::filebuf.
le open me donne ce qu'il me faut ;)
Personnellement, étant donné que de telles implémentations
existent, la meilleur solution est bien d'écrire ton propre
fdstreambuf ; du coup, ça permettre l'utilisation des iostream
pour des pipe et des sockets aussi. (Mais c'est un peu dommage
d'en être arrivé là).
je suis entierement d'accord avec vous, mais des fois il faut s'adapter
aux imperatifs ;-)
de plus, n'est il pas parfois preferable d'aller au plus rapide (deux
lignes seulement de changees et 5mn de passees) qu'au plus beau quand le
temps manque, ou que le code est tres vieux ?
il est certain que lorsque j'aurai plus de temps, il y a pas mal de
choses que je compte changer mais en attendant, tout doit avancer parfois :)
Mais pourquoi cette manie d'utiliser un FILE*.
oh personnellement je m'adapte :-)
je n'ai aucun préjugé simplement je doit adapter un vieux code a linu x,
en minimisant les effets de bord, et sans perdre de tempsEn revanche, il n'y a pas plus de manière « standard »
d'obtenir un file descripteur d'un FILE* que d'un std::filebuf.
le open me donne ce qu'il me faut ;)
Personnellement, étant donné que de telles implémentations
existent, la meilleur solution est bien d'écrire ton propre
fdstreambuf ; du coup, ça permettre l'utilisation des iostream
pour des pipe et des sockets aussi. (Mais c'est un peu dommage
d'en être arrivé là).
je suis entierement d'accord avec vous, mais des fois il faut s'adapter
aux imperatifs ;-)
de plus, n'est il pas parfois preferable d'aller au plus rapide (deux
lignes seulement de changees et 5mn de passees) qu'au plus beau quand le
temps manque, ou que le code est tres vieux ?
il est certain que lorsque j'aurai plus de temps, il y a pas mal de
choses que je compte changer mais en attendant, tout doit avancer parfois :)