|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2005
Messaggi: 199
|
fseek()
devo inserire una struct in coda ad un file
fseek (stream,m,SEEK_SET); la sintassi è corretta? m è una variabile che contiene la posizione dell'ultimo elemento del file m=ftell(stream); ogni volta che cerco di accedere al file per inserire una nuova struct in coda, mi cancella tutto il file e mi mette la nuova struct all'inizio del file. |
|
|
|
|
|
#2 | |||
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Re: fseek()
Quote:
fseek (stream,0,SEEK_END); Quote:
Quote:
fopen(filename, "a"); Nota che questa forma posiziona il file pointer alla fine del file, quindi non è necessario eseguire la fseek.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|||
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jan 2005
Messaggi: 199
|
ti ringrazio per la risposta avevo già risolto.
Mi sapresti dire qual'è quella funzione che mi restituisce la dimensione di un file? |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Non esiste una funzione standard; sotto linux usiamo la (f)stat, sotto windows ci sono altre funzioni. Un modo macchinoso e poco ortodosso che funziona ovunque è effettuare la fopen(file, "r") - fseek(stream, 0, SEEK_END) - ftell(stream) - fclose(stream). Ti consiglio di usare le API del tuo sistema operativo.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jan 2005
Messaggi: 199
|
avevo pensato nel caricamento dati di inserire ftell
in modo che potevo conoscere la posizione dell'ultimo elemento inserito nel file. Pero' poiche ho messo anche una funzione che mi permette l'inserimento aggiuntivo di elementi nel file vorrei sapere come incrementare la variabile che contiene la funzione ftell() CARICAMENTO ---- --- m=ftell(stream) Aggiunta elementi fseek(stream, 0, SEEK_END) --- --- m=ftell(stream) Dovrebbe andare bene cosi? Ultima modifica di gio84 : 01-03-2005 alle 15:25. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Se devi aprire un file sia per lettura che per append, ti consiglio di aprirlo con il flag "a+". Così è come viene documentato nelle glibc:
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jan 2005
Messaggi: 199
|
si ma il caricamento e l'aggiunta di un elemento li ho implementati in due funzioni differenti quindi non ho questo problema.
Volevo sapere se l'esempio di prima andava bene... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:16.



















