Alkuperäinen koodi:
--------------------------------------------------
if (bPrintTo_stdout)
{
f = stdout;
}
else
{
if (!(f = fopen(textFileName, "wb")))
{
showError("Couldn't open text file.");
exit(1);
}
}
--------------------------------------------------
Miten luodaan "Pseudotiedosto" ?
Siis siten, että kun myöhemmin koodissa kirjoitetaan tiedostoon/tiedostokahvaan f,
niin haluaisin, että kaikki "tiedostoon f" normaalisti menevä data sen sijaan aiheuttaakin kutsun takaisinkutsufunktioon:
void showF(const char *data, int datalength) {
// kun "tiedostoon f" kirjoitetaan, täsmälleen sama data, joka normaalisti
// kirjoitettaisiin tiedostoon, aiheuttaakin kutsun tähän funktioon, siten että:
// osoitinparametri data osoittaa kirjoitettavan datan ensimmäiseen tavuun ja
// kokonaislukuparametri datalength ilmoittaa, kuinka monta tavua on tarkoitus kirjoittaa.
}
Kääntäjänä gcc.
Onko siis mahdollista uudelleenohjata ohjelman sisällä kaikki kirjoitukset määrättyyn tiedostokahvaan todellisuudessa takaisinkutsufunktioon tiedoston sijasta, miten ?
Pseudotiedosto, takaisinkutsu: miten ???
uudelleenOhjaus_File
0
77
Vastaukset
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225304- 254498
- 282621
- 342284
- 372028
- 151968
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191627- 121551
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons211297Kerranki asiat oikein
Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa101214