Cześć,
Mam w swoim programie w c++ funkcje, które operują na strumieniach weśjścia/wyjścia. W skrócie użytkownik może przekazać np. wyjściowy strumień do którego mój program będzie zapisywał bieżące wyniki. Można też podać strumień wejściowy, z którego będą pobierane dane. Ostatnio wyszła potrzeba dopisania api C dla tych funkcji i stąd moje pytanie czy istnieje jakiś sposób, żeby z poziomu C przekazywać jakąś strukturę analogiczną do strumieni z c++? Doczytałem, że w c mamy coś takiego jak FILE* co jest właśnie czymś na kształt strumienia z C++ z tym, że nie znalazłem sposobu, żeby połączyć z sobą FILE* oraz strumieni z cpp. Ogólnie zależy mi żebym mógł zrobić coś w tym stylu:
// file my_lib.hpp
void write_to(std::ostream& stream)
{
stream << "przykładowa funkcja pisząca do strumienia";
}
// file c_api.h
void c_write_to(FILE* stream);
//file c_api.cpp
#include "c_api.h"
#include "my_lib.hpp"
void c_write_to(FILE* stream)
{
// i tutaj przydałaby się jakaś konwersja struktur C na C++
//write_to();
}
Czy jest jakaś mozłiwość, żeby to wykonać w ten sposób? A może w ogóle mam złe podejście i można to zrobić prościej/lepiej?
Z góry dzięki za odpowiedź.
Mam w swoim programie w c++ funkcje ...
C
bez systemowegoPIPE
... albo implementacjistream
wC
nie da rady. To znaczy tak czy owak trzeba zaimplementowaćstream
wC
ale z użyciemPIPE
jest znacznie prościej.