du hast Recht, ich fand die Idee auch zuerst - sagen wir: - verwegen.
Dennoch, nach dem Motto "alles ist ein File" und "Pointer sind auch nur Speicher-Adressen" war meine Idee schlicht
fstream ist ein file,
FILE ist ein file,
jeder File hat eine Adresse,
jeder File (zumindest FILE) hat einen File Descriptor,
also warum nicht mit dem Pointer vom einen auf den Wert vom anderen Pointer verweisen, genau wie man mit einem void* auf den Wert eines int* oder auf ein char* oder float* verweisen kann und umgekehrt.
Probiers doch einfach mal aus, mehr als 35 EUR wird es schlimmstenfalls nicht kosten
PS,
notfalls, falls gpp streikt, bliebe immer noch -fpermissive :P
- - - Aktualisiert - - -
PS,
eventuell ließe sich das oben gesagte sogar noch etwas "obfuscated" zusammenziehen:
int fd = fileno( (FILE*)&fstream );
Lesezeichen