/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
problem med fopen (gcc)
Fra : Gert Mikkelsen


Dato : 12-04-02 14:24

Jeg har et problem med at skrive til en fil når denne er åbnet med
fopen("filnavn", "r+").
Jeg kan godt læse fra den, og hvis jeg åbner den med fopen("filnavn", "w")
kan jeg også skrive til den. er der andre der har haft dette problem? Jeg
bruger linux og gcc 2.96.


---

Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.346 / Virus Database: 194 - Release Date: 10-04-2002



 
 
Igor V. Rafienko (12-04-2002)
Kommentar
Fra : Igor V. Rafienko


Dato : 12-04-02 14:41

[ Gert Mikkelsen ]

> Jeg har et problem med at skrive til en fil når denne er åbnet med
> fopen("filnavn", "r+").


_Nøyaktig_ hva gjør du? (mao. post det minste eksempelet som
illustrerer problemet)





ivr
--
If the Americans want the gold medals this bad, then our Mint should
stamp some and hand them over.
      -- G. Raikov, 2002-02-22 on Salt Lake City Olympics

Gert Mikkelsen (12-04-2002)
Kommentar
Fra : Gert Mikkelsen


Dato : 12-04-02 15:28

static FILE *file

// i en function:
file = fopen("filnavn", "r+");
// tråd startes

// i en anden function (i tråden)
char data[DATA_SIZE];

fread(data, sizeof(char), DATA_SIZE, file);
// ændrer på data

fwrite(data, sizeof(char), DATA_SIZE, file);
fclose(file);

// slut: filen burde være ændret, men dette er ikke sket.

dette er en forkortet udgave af det jeg gør, jeg laver tjek på alle
returværdierne fra filfunktionerne og de returnerer det de skal. fwrite og
fclose returnerer også som om jeg har skrevet noget til filen.
Det er en lokal fil på et ext2-filsystem(linux).






Igor V. Rafienko (12-04-2002)
Kommentar
Fra : Igor V. Rafienko


Dato : 12-04-02 15:49

[ Gert Mikkelsen ]

[ snip ]

> fread(data, sizeof(char), DATA_SIZE, file);
> // ændrer på data
>
> fwrite(data, sizeof(char), DATA_SIZE, file);
> fclose(file);
>
> // slut: filen burde være ændret, men dette er ikke sket.
>
> dette er en forkortet udgave af det jeg gør, jeg laver tjek på alle
> returværdierne fra filfunktionerne og de returnerer det de skal.
> fwrite og fclose returnerer også som om jeg har skrevet noget til
> filen. Det er en lokal fil på et ext2-filsystem(linux).


Lese mansider er veldig lurt:

When a file is opened with update mode (+ as the second or
third character in the mode argument), both input and output
may be performed on the associated stream. However, output
must not be directly followed by input without an interven-
ing call to fflush(3C) or to a file positioning function (
fseek(3C), fsetpos(3C) or rewind(3C)), and input must not be
directly followed by output without an intervening call to a
file positioning function, unless the input operation
encounters end-of-file.





ivr
--
If the Americans want the gold medals this bad, then our Mint should
stamp some and hand them over.
      -- G. Raikov, 2002-02-22 on Salt Lake City Olympics

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste