Newsgroup: it.comp.os.linux.development
Titolo: salvare come si fa?

ciao a tutti,
mi scuso per la stupidità della mia domanda ma ho solo 14 anni e sono alle
mie prime esperienze di programmazione.
Sto usando da poco il C e sto facendo un programmino che gestirà delle
struct che poi vorrei ritrovare al riavvio. Come se fosse la gestione di
persone di una rubrica.
Ho quindi bisogno di effettuare dei salvataggi come ogni programma serio.
avete qualche aiuto da darmi?
c'è una libreria che mi permette di salvare su file? o qualche tutorial
che spieghi? grazie!

 che spieghi? grazie!
la libreria standard stdio.h
se hai un libro o se hai i commenti scritti nell'header, leggiti l'uso di :
fopen()
fclose()
fflush()
fseek()
rewind()
feof()
ferror()
fprintf()
fscanf()
fgets()
fputs()
fgetc()
fputc()
fread()
fwrite()
di tutorial non so ... meglio un libro no ??? per il c mi pare il Kerningan
& Ritchie.
ciao

 Ho quindi bisogno di effettuare dei salvataggi come ogni programma serio.
man write
man fwrite
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! 3rd Law of Computing: Anything that can go wr
		fortune: Segmentation violation -- Core dumped !>-

 Ho quindi bisogno di effettuare dei salvataggi come ogni programma serio.
Le funzioni da usare te le hanno indicate.
Considera che ci sono 2 modi per salvare un file:
- puoi salvare in formato binario: ti scrivi tutte le informazioni della 
  struct cosi' come sono in memoria su un file e poi da file a struct.
  Attento:
  - se in una struct hai un puntatore facendo cosi' salvi il puntatore, non 
    l'oggetto puntato
  - i campi possono avere dimensione variabile, e' consigliabile indicare da 
    qualche parte la dimensione di questi
  - indica comunque sempre come primo dato la dimensione della struct
  Soluzione diretta e immediata, ma non elegante.
  Tip (che ti e' gia' stato indicato): fread/fwrite
- salvi tutto in formato testuale: e' la soluzione che usasi per molte 
  applicazioni in ambiente unix (file di configurazione e in alcuni casi 
  dati).
  Prendi i dati della tua rubrica e li converti in stringhe e poi su file 
  salvi solo le stringhe. L'operazione inversa consiste nel leggere le 
  stringhe dal file, eventualmente convertirle se necessario (che so, da 
  stringa a intero) e poi salvarle nella struct. Nota che devi anche 
  inserire una formattazione o usare una convenzione per poter ricostruire 
  la struttura allo stesso modo.
  Questo presuppone che tutti i tuoi dati possano essere convertiti in 
  stringhe, altrimenti devi arrangiarti con qualche artificio (uno dei 
  tanti: guarda come fai mandare un file binario via e-mail)
  Giusto per la cronaca, il modo piu' elegante (ma forse oltre la tua 
  portata per ora) e' salvare tutto in un file XML, ovvero un file di testo 
  formattato correttamente come XML. Questo ti garantisce che qualunche 
  applicazione potra' leggerlo senza troppa fatica e importarlo/esportarlo 
  nel tuo formato.
  Tip: fgets/fputs, fgetc/fputc
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."


Per salvare il file in formato XML intendi aggiungere semplicemente i tag,
giusto?
E' una soluzione davvero inteligente!
Complimenti!

 che spieghi? grazie!
Il Kernighan va bene come guida di riferimento per il C. Ma ti consiglio di 
dare un'occhiata qui per esempio
http://www.gnu.org/manual/glibc-2.2.5/html_node/index.html
Troverai tutta la libreria standard GNU C.
Buon Divertimento
Mario