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
63
Vastaukset
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
En usko et meistä tulee jotain
Se ei kuitenkaan estä toivomasta et tulisi. Toivon et voitas suudella ja se sais asioita loksahtamaan paikoilleen. Jutel102880- 1152145
Eini paljastaa nuorekkuutensa salaisuuden - Tämä nousee framille: "Se on pakko, että jaksaa!"
Discokuningatar Eini on täyttänyt upeat 64 vuotta. Lavoilla ja keikoilla nähdään entistä vapautuneempi artisti, joka ei431554- 2601398
- 701013
Olen J-mies
Jos kerrot sukunimeni alkukirjaimen, ja asuinpaikkakuntani. Lupaan ottaa yhteyttä sinuun.47911- 55884
Ei sitten, ei olla enää
Missään tekemisissä. Unohdetaan kaikki myös se että tunsimme. Tätä halusit tämän saat. J miehelle. Rakkaudella vaalea na77880- 44795
Ma 30.9 tosiko tv klo 18 suorana Tikkalanmäeltä
Virastolta suorana. Äänestyksistä sitten puhutaan illalla ja huomenna, onko kepuvasemmisto kuntalaisten tahdon mukaan to93736