🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Krzysztof Za³êski Tue, 09 Dec 1997 09:55
Dziwne dzialanie fwrite
#416
Author: Krzysztof Za³êski
Date: Tue, 09 Dec 1997 09:55
39 lines
1544 bytes
Witam,

Mam pewien dziwny problem z ktorym nie moge sobie poradzic. Otoz mam
strukture powiedzmy:

struct DANE{
  char[10] nazwisko;
  char[10] imie;
};

I mam sobie liste dwukierunkowa skladajaca sie z rekordow:

struct REK{
  REK *poprz;
  DANE DaneOs;
  REK *nast;
};

Jest tez strukrura z informacja o stanie listy:

struct STAN{
  REK *pierwszy;
  REK *aktualny;
  REK *ostatni;
} StanAkt;

Tworzac rekord (przez Rek = new REK) wpisuje sobie dane do DaneOs.
Nastepnie mam funkcje ktora zczytuje DaneOs ze wszyskich rekordow i
zapisuje do pliku (taki sobie Save).
Zapisuje przez (i tu nie jestem pewien czy robie dobrze):

fwrite(&(StanAkt.aktualny->DaneOs), sizeof(DANE), 1, ffile)

Problem jest w tym, ze do pliku (otwartego przez w+b) nie zapisywana
jest wielkosc sizeof(DANE) tylko mniejsza. Jezeli wypelniam nazwisko
5-ma znakami to on zapisuje tylko te 5 znakow a nie cala dlugosc pola,
czyli 10. Czy ktos moze mi wskazac co robie zle... z gory dzieki.

Krzysztof
Re: Dziwne dzialanie fwrite
#417
Author: Stanislaw Sidor
Date: Thu, 11 Dec 1997 20:47
18 lines
1168 bytes
[...]
> Problem jest w tym, ze do pliku (otwartego przez w+b) nie zapisywana
> jest wielkosc sizeof(DANE) tylko mniejsza. Jezeli wypelniam nazwisko
> 5-ma znakami to on zapisuje tylko te 5 znakow a nie cala dlugosc pola,
> czyli 10. Czy ktos moze mi wskazac co robie zle... z gory dzieki.
> 
> Krzysztof

Sprawa godna zbadania...
Zawsze mozesz:

int fd=open("nazwa_pliku",O_WRONLY|O_BINARY);
write(fd,&(void*)struktura,(unsigned)rozmiar);

fwrite to archaizm (write zreszta tez).
Jwsli piszesz pod C++ to poczytaj o strumieniach I/O

(STS)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads