Rattacher un descripteur de fichier à un fstream

Rattacher un descripteur de fichier à un fstream - C++ - Programmation

Marsh Posté le 18-11-2003 à 21:26:33    

J'ai un problème concernant le portage d'une application sur un compilateur C++ récent.
 
Cette application crée un pipe, et ce pipe est ensuite rattaché à un duo ifstream/ofstream pour pouvoir faire des E/S de flux classique dessus. En effet, cette version du compilateur comporte une méthode attach sur fstream permettant d'affecter un flux à un descripteur de fichier.
 

Code :
  1. ifstream ifs;
  2. ofstream ofs;
  3. ifs.attach (pipe[0]);
  4. ofs.attach (pipe[1]);


 
Malheureusement, cet attach n'est pas dans la norme. Résultat, *pouf*, ça ne fonctionne plus quand je compile avec gcc 3. Je cherche donc à encapsuler un pipe dans un fstream. Comment puis-je faire avec un gcc 3 ?

Reply

Marsh Posté le 18-11-2003 à 21:26:33   

Reply

Marsh Posté le 18-11-2003 à 22:05:42    

http://gcc.gnu.org/ml/libstdc++/2001-02/msg00120.html
 
mauvaise nouvelle


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 18-11-2003 à 22:10:05    

mais y'a de l'espoir sur du pas-standard :  
http://www.roguewave.com/support/d [...] html#idx71


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 18-11-2003 à 22:13:02    

J'utilise pas roguewave :o

Reply

Marsh Posté le 18-11-2003 à 22:23:56    

ben c'est con pour toi, vu que tu n'as pas l'air de savoir chercher dans la lib que tu utilises.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 18-11-2003 à 22:29:23    

Si je sais chercher, brave petit.
 
Et je sais égalemen,t que comme la bibliothèque du C++ doit s'abstraire du système sous-jacent, ce n'est pas étonnant que ce type de manipulation soit pas permise. Aussi j'aimerais mettre en place un système le remplaçant. Je pense qu'en l'encapsulant dans un streambuf, j'y aurais accès avec toute la bibliothèque des flux C++, mais c'est cette connection entre mon fd (qui est un int) et la bibliothèque de flux que je percute pas. Il semble n'y avoir aucun point d'entrée.

Reply

Marsh Posté le 18-11-2003 à 23:17:29    

http://www.sthoward.com/docs/iostream_24.html
 
les constructeurs kivonbien (pas de version sur ce document) ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 19-11-2003 à 08:11:42    

Mais qu'il est con.
 
CE CONSTRUCTEUR A ETE FOUTU DEHORS !!!!
 

Citation :

These methods are declared in `fstream.h'.


 
Quand on utilise pas des technos du siècle dernier, on inclus fstream, pas fstream.h

Reply

Marsh Posté le 19-11-2003 à 08:23:28    

allezup a écrit :

Mais qu'il est con.

Citation :

These methods are declared in `fstream.h'.


 
Quand on utilise pas des technos du siècle dernier, on inclus fstream, pas fstream.h


 
Eh, avant de geuler comme un putois, renseigne toi. Dans le compilo gnu (en l'occurence gcc), quand on regarde les headers, on a:
 
(je prend l'ex de g++--2 car c'est la version que j'ai, désolé)

Code :
  1. g++-2:{18}> more fstream
  2. // -*- C++ -*- forwarding header.
  3. // This file is part of the GNU ANSI C++ Library.
  4. #ifndef __FSTREAM__
  5. #define __FSTREAM__
  6. #include <fstream.h>
  7. #endif


 
donc tout est dans iostream.h
Etonnant, non? Donc tu utilises fstream, et le compilo utilise fstream.h. Maintenant si tu veux chercher les infos dans fstream, tu peux, mais c'est sûr que tu ne va pas trouver grand chose.


Message édité par SoWhatIn22 le 19-11-2003 à 08:27:54
Reply

Marsh Posté le 19-11-2003 à 08:41:03    

sowhatin22 a écrit :


(je prend l'ex de g++--2 car c'est la version que j'ai, désolé)


 
Mais c'est quoi ce forum de con ?
 
Moi si j'ouvre mon ftstream,j'ai un vrai header, pas un enrobage pour faire croire que ...

Reply

Marsh Posté le 19-11-2003 à 08:41:03   

Reply

Marsh Posté le 19-11-2003 à 08:44:22    

g++ 2 fait justement partie des ces techno du siècle dernier pour ce qui concerne le c++ :whistle:

Reply

Marsh Posté le 19-11-2003 à 09:02:26    

[:cupra]
[:rofl]

Reply

Marsh Posté le 19-11-2003 à 10:07:01    

Les grossieretes n'amenent a rien...

Reply

Marsh Posté le 19-11-2003 à 10:17:10    

va voir chez GNUCommonC++

Reply

Marsh Posté le 19-11-2003 à 10:56:22    

Taz a écrit :

va voir chez GNUCommonC++


 
[url] ? Parceque un [:google] ne m'amène nulle part

Reply

Marsh Posté le 19-11-2003 à 10:56:53    

BB138 a écrit :

Les grossieretes n'amenent a rien...


 
ta gueule :o

Reply

Marsh Posté le 19-11-2003 à 10:59:58    

tu te fous de qui ?
http://www.google.fr/search?q=GNU+ [...] ogle&meta=
google j'ai de la chance :o

Reply

Marsh Posté le 19-11-2003 à 11:05:46    

Reply

Marsh Posté le 19-11-2003 à 11:08:11    

gnagnagnagnaj'aidéconnectémonneuronequimesertàmettredesespacesentrelesmots

Reply

Marsh Posté le 19-11-2003 à 11:17:59    

alors les filles, on cause chiffon ?

Reply

Marsh Posté le 19-11-2003 à 11:23:18    

Kristoph a écrit :

g++ 2 fait justement partie des ces techno du siècle dernier pour ce qui concerne le c++ :whistle:


GCC 2.95 fait bel et bien partie de ce siècle, et est encore très utilisé, y compris pour le compilo c++, l'ABI n'étant pas compatible avec les versions 3.
 
[citation]Mais c'est quoi ce forum de con ?[/citation]
Autant de peu d'ouverture d'esprit et de vulgarité est tout de même effrayant.

Reply

Marsh Posté le 19-11-2003 à 11:30:46    

[:kamool]

Reply

Marsh Posté le 19-11-2003 à 11:42:56    

Citation :

GNU Common C++ is a GNU package and is licensed to the terms of the GNU GPL


 
Hop, poubelle. Je peux pas l'utiliser. Il y a pas quelque chose sur une license un peu plus libre ?


Message édité par allezup le 19-11-2003 à 11:43:31
Reply

Marsh Posté le 19-11-2003 à 11:44:37    

heink ?

Reply

Marsh Posté le 19-11-2003 à 11:47:47    


 
Je suis pas GPL, je peux pas linker avec une bibliothèque GPL, c'est pourtant pas dur à comprendre

Reply

Marsh Posté le 19-11-2003 à 11:51:10    

mais alors va voir ailleurs si on y est ... tu penses bien que tout ce qui est pas GPL dans ce domaine, ben l'est pas libre ... t'es marrant toi ...
ben tu te prends en main : tu construit ta propre classe dessus, avec le streambuf comme il faut et voilà

Reply

Marsh Posté le 19-11-2003 à 11:54:40    

Peut-être avec une classe de boost

Reply

Marsh Posté le 19-11-2003 à 12:01:04    

Taz a écrit :

mais alors va voir tu penses bien que tout ce qui est pas GPL dans ce domaine, ben l'est pas libre ...  


 
Et BSD ? Et LGPL ?  
 
Tu fait parti de ces intétgristes qui veulent détruire le logiciel propriétaire et faire des millions de chomeurs supplémentaires et vivre d'amour et de T1 fraiche ?
 
Déjà qu'on a pas le droit aux brevets logiciels par la faute de ces crétins ...

Reply

Marsh Posté le 19-11-2003 à 12:01:27    

Kristoph a écrit :

Peut-être avec une classe de boost


 
non, il y a pas, je viens d'aller voir, mais merci quand même du conseil :jap:

Reply

Marsh Posté le 19-11-2003 à 12:06:13    

allezup a écrit :


Déjà qu'on a pas le droit aux brevets logiciels par la faute de ces crétins ...


Apparament tu connais très mal le sujet et ce qui s'est passé.

Reply

Marsh Posté le 19-11-2003 à 12:08:14    

allezup a écrit :


 
ta gueule :o


 
multi de darklord spotted! [:kiki]


---------------
yvele n'est plus.
Reply

Marsh Posté le 19-11-2003 à 12:10:54    

allezup a écrit :


 
Et BSD ? Et LGPL ?  
 
Tu fait parti de ces intétgristes qui veulent détruire le logiciel propriétaire et faire des millions de chomeurs supplémentaires et vivre d'amour et de T1 fraiche ?
 
Déjà qu'on a pas le droit aux brevets logiciels par la faute de ces crétins ...

mince j'ai même plus envie de te donner ma solution personnelle que j'avais codé dans un coin.

Reply

Marsh Posté le 19-11-2003 à 12:13:41    

[:cupra]

Reply

Marsh Posté le 19-11-2003 à 12:15:33    

kadreg \o/


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-11-2003 à 12:16:30    


 
hé pas con! :lol:


---------------
yvele n'est plus.
Reply

Marsh Posté le 19-11-2003 à 12:16:50    

allezup a écrit :


Déjà qu'on a pas le droit aux brevets logiciels par la faute de ces crétins ...


 
[:tapai]


Message édité par Kristoph le 19-11-2003 à 12:17:02
Reply

Marsh Posté le 19-11-2003 à 12:17:57    

[:fuel]

Reply

Marsh Posté le 19-11-2003 à 12:22:43    

http://forum.hardware.fr/forum2.ph [...] t=#t252201
 
 
allezup> capté en flagrant delit de multi!!!!!!!!!!!!!  
 
close du topic illico :o
et mass dailaite du multi en question!


Message édité par Mr yvele le 19-11-2003 à 12:22:59

---------------
yvele n'est plus.
Reply

Marsh Posté le 19-11-2003 à 12:30:30    

[:cupra]

Reply

Marsh Posté le 19-11-2003 à 12:43:00    


 
t'es pas au fitness ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed